我的应用程序中有许多警报对话框。这是默认布局,但我在对话框中添加了正面和负面按钮。因此按钮获得了 Android 5 的默认文本颜色(绿色)。我试图改变它但没有成功。知道如何更改该文本颜色吗?
我的自定义对话框:
public class MyCustomDialog extends AlertDialog.Builder { public MyCustomDialog(Context context,String title,String message) { super(context); LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); View viewDialog = inflater.inflate(R.layout.dialog_simple, null, false); TextView titleTextView = (TextView)viewDialog.findViewById(R.id.title); titleTextView.setText(title); TextView messageTextView = (TextView)viewDialog.findViewById(R.id.message); messageTextView.setText(message); this.setCancelable(false); this.setView(viewDialog); } }
创建对话框:
MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage); builder.setNegativeButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { ... } }).show();
该negativeButton 是一个默认对话框按钮,采用Android 5 Lollipop 的默认绿色。
非常感谢
你可以尝试先创建AlertDialog对象,然后用它来设置改变按钮的颜色,然后显示出来。(请注意,我们调用builder对象而不是调用来获取对象:show()``create()``AlertDialog
AlertDialog
builder
show()``create()``AlertDialog
//1. create a dialog object 'dialog' MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage); AlertDialog dialog = builder.setNegativeButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { ... } }).create(); //2. now setup to change color of the button dialog.setOnShowListener( new OnShowListener() { @Override public void onShow(DialogInterface arg0) { dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(COLOR_I_WANT); } }); dialog.show()
创建对话框后必须执行此操作onShow()并且不能仅获取该按钮的原因是该按钮尚未创建。
onShow()
我改为AlertDialog.BUTTON_POSITIVE反映AlertDialog.BUTTON_NEGATIVE你的问题的变化。虽然奇怪的是“确定”按钮会是一个否定按钮。通常它是正极按钮。
AlertDialog.BUTTON_POSITIVE
AlertDialog.BUTTON_NEGATIVE