为AlertDialog的按钮列表添加参数,以指定它们出现的顺序。
解决方法示例:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title")
.setMessage("Message")
.setNegativeButton("Cancel", null)
.setPositiveButton("OK", null)
.setNeutralButton("Neutral", null);
AlertDialog dialog = builder.create();
// 实现按钮列表的排序
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialogInterface) {
Button positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
Button negativeButton = dialog.getButton(AlertDialog.BUTTON_NEGATIVE);
Button neutralButton = dialog.getButton(AlertDialog.BUTTON_NEUTRAL);
// 更改按钮的排序
neutralButton.setBackgroundResource(android.R.drawable.btn_default);
LinearLayout.LayoutParams positiveParams = (LinearLayout.LayoutParams) positiveButton.getLayoutParams();
positiveParams.gravity = Gravity.LEFT;
positiveButton.setLayoutParams(positiveParams);
LinearLayout.LayoutParams negativeParams = (LinearLayout.LayoutParams) negativeButton.getLayoutParams();
negativeParams.gravity = Gravity.CENTER_HORIZONTAL;
negativeButton.setLayoutParams(negativeParams);
LinearLayout.LayoutParams neutralParams = (LinearLayout.LayoutParams) neutralButton.getLayoutParams();
neutralParams.gravity = Gravity.RIGHT;
neutralButton.setLayoutParams(neutralParams);
}
});
dialog.show();