我创建了一个扩展类,它在它的 onCreateDialog 方法DialogFragment
中返回一个,就像这里一样。
问题是,我想增加标准(正)按钮的高度,但我无法抓住它来改变它的高度。
当我在 onCreateDialog 方法中执行以下操作时AlertDialog
DialogFragment
mAlertDialog = new AlertDialog.Builder(getActivity())
.setView(messageView)
.setCustomTitle(titleView)
.setPositiveButton(R.string.dialog_button,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((ContextSwapUserInterface) getActivity()).instructionsAccepted();
}
}
)
.create();
mAlertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setHeight(60);
我得到一个异常,上面写着“......无法实例化 ComponentInfo......”
我猜这是因为此时 Button 没有正确实例化。
所以我尝试在我的主要活动中获取按钮,在我创建DialogFragment
并调用它的 .show 方法之后:
// Create and show a new InstructionsDialogFragment
DialogFragment instructionsDialogFragment = InstructionsDialogFragment.newInstance(mInstructions);
instructionsDialogFragment.show(getFragmentManager(), "Instructions Dialog");
((Button) instructionsDialogFragment.getDialog().findViewById(android.R.id.button1)).setHeight(60);
我还尝试了以下内容,而不是上面的最后一行:
((AlertDialog) instructionsDialogFragment.getDialog()).getButton(AlertDialog.BUTTON_POSITIVE).setHeight(60);
两个版本都会导致 NullPointerException。有没有什么简单的方法可以AlertDialog
在使用 时自定义 按钮DialogFragment
?