更改正负按钮和间距的颜色

时间:2020-07-31 10:42:15

标签: android android-layout android-alertdialog

我正在尝试使.setPositiveButton.setNegativeButton彼此隔开。另外,我试图将.setPositiveButton.setNegativeButton的文本颜色设置为不同。我知道当我更改colorAccent时,它会同时更改.setPositiveButton.setNegativeButton的颜色。感谢您的协助。

MainActivity.kt

 class MainActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            btn_delete.setOnClickListener {
                val dialogBuilder = AlertDialog.Builder(this, R.style.AlertDialogStyle)
                dialogBuilder.setMessage("Test.")
    
                    .setCancelable(false)
                    .setPositiveButton("END", DialogInterface.OnClickListener {
                            dialog, id -> dialog.cancel()
                    })
                    .setNegativeButton("Keep Ticket", DialogInterface.OnClickListener {
                            dialog, id -> dialog.cancel()
                    })
    
                val alert = dialogBuilder.create()
    
                val title = TextView(this)
                title.text = "WARNING"
                title.setPadding(15, 45, 15, 0)
                title.gravity = Gravity.CENTER
                title.setTextColor(Color.WHITE)
                title.textSize = 20f
                alert.setCustomTitle(title)
    
                // show alert dialog
                alert.show()
                alert.window?.setBackgroundDrawableResource(android.R.color.black)
            }
    }
    }

styles.xml

<resources>
 <style name="AlertDialogStyle" parent="Theme.AppCompat.Light.Dialog">
        <item name="android:colorAccent">#FF0000</item>
        <item name="android:textColor">#f3f3f3</item>
        <item name="android:textColorPrimary">#f3f3f3</item>
    </style>
</resources>

1 个答案:

答案 0 :(得分:0)

在显示对话框之前尝试此操作

alert.show()

val negativeBTN: Button = alert.getButton(DialogInterface.BUTTON_NEGATIVE)
negativeBTN.setTextColor(resources.getColor(R.color.colorName))

val positiveBTN: Button = alert.getButton(DialogInterface.BUTTON_POSITIVE)
positiveBTN.setTextColor(resources.getColor(R.color.colorName))
相关问题