如何自定义AlertDialog的默认按钮?
How to customize default buttons of AlertDialog?
问题是,我有一个 AlertDialog
,我在其中通过以下方式扩展我的自定义布局:
AlertDialog.Builder mBuilder = new AlertDialog.Builder(getActivity());
View mView = getLayoutInflater().inflate(R.layout.exp_add, null);
mBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//some of my data and mView manipulation
});
mBuilder.setView(mView);
AlertDialog dialog = mBuilder.create();
dialog.show();
问题是如何自定义 .setPositiveButton
,因为我有一个具有特定背景颜色的视图,但 mBuilder 添加了一个默认为白色背景颜色的按钮和一个粉红色文本按钮。
有没有办法自定义这个按钮?
AlertDialog.Builder builder = new AlertDialog.Builder(context);
LayoutInflater inflater = context.getLayoutInflater();
//setting custom view for our dialog
View myview = inflater.inflate(R.layout.YOUR_CUSTOM_LAYOUT, null);
builder.setNeutralButton(android.R.string.cancel, null);
builder.setView(myview);
//creating an alert dialog from our builder.
AlertDialog dialog = builder.create();
dialog.show();
//retrieving the button view in order to handle it.
Button neutral_button = dialog.getButton(DialogInterface.BUTTON_NEUTRAL);
Button positive_button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
if (neutral_button != null) {
neutral_button.setBackgroundDrawable(context.getResources()
.getDrawable(R.drawable.custom_background));
neutral_button.setTextColor(context.getResources()
.getColor(android.R.color.white));
}
if (positive_button != null) {
positive_button.setBackgroundDrawable(context.getResources()
.getDrawable(R.drawable.custom_background));
positive_button.setTextColor(context.getResources()
.getColor(android.R.color.white));
}
问题是,我有一个 AlertDialog
,我在其中通过以下方式扩展我的自定义布局:
AlertDialog.Builder mBuilder = new AlertDialog.Builder(getActivity());
View mView = getLayoutInflater().inflate(R.layout.exp_add, null);
mBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//some of my data and mView manipulation
});
mBuilder.setView(mView);
AlertDialog dialog = mBuilder.create();
dialog.show();
问题是如何自定义 .setPositiveButton
,因为我有一个具有特定背景颜色的视图,但 mBuilder 添加了一个默认为白色背景颜色的按钮和一个粉红色文本按钮。
有没有办法自定义这个按钮?
AlertDialog.Builder builder = new AlertDialog.Builder(context);
LayoutInflater inflater = context.getLayoutInflater();
//setting custom view for our dialog
View myview = inflater.inflate(R.layout.YOUR_CUSTOM_LAYOUT, null);
builder.setNeutralButton(android.R.string.cancel, null);
builder.setView(myview);
//creating an alert dialog from our builder.
AlertDialog dialog = builder.create();
dialog.show();
//retrieving the button view in order to handle it.
Button neutral_button = dialog.getButton(DialogInterface.BUTTON_NEUTRAL);
Button positive_button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
if (neutral_button != null) {
neutral_button.setBackgroundDrawable(context.getResources()
.getDrawable(R.drawable.custom_background));
neutral_button.setTextColor(context.getResources()
.getColor(android.R.color.white));
}
if (positive_button != null) {
positive_button.setBackgroundDrawable(context.getResources()
.getDrawable(R.drawable.custom_background));
positive_button.setTextColor(context.getResources()
.getColor(android.R.color.white));
}