【发布时间】:2013-04-01 08:08:55
【问题描述】:
我有一个 android 应用程序,它使用一些从 XML 布局扩展而来的自定义对话框。对话框视图的内容来自 XML 布局,但实际的正负按钮是通过调用构建器的 setPositiveButton 和 setNegativeButton 方法添加的,所以我无法控制(或至少不知道如何控制)样式按钮本身。
从我的 LoginConfirmationDialog.java 文件中查看下面的 onCreateDialog 方法,该文件扩展了 DialogFragment。它基本上会弹出一个非常简单的对话框,要求确认谁在登录(即“你是 Joe Schmoe 吗?”,带有是和否按钮)。
在这种情况下,XML 布局只有一个 TextView,为了简化操作(因为用户将是需要大文本和大按钮的大块脏手指的建筑工人),我为 TextView 设置了漂亮的字体大的。虽然这两个按钮的文本字体要小得多,而且由于它们不是我的布局的一部分,而是通过 setPositiveButton 和 setNegativeButton 方法添加的,我该如何控制字体大小?
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Bundle args = this.getArguments();
String empName = args.getString("empName");
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_login_confirmation, null);
TextView message = (TextView)view.findViewById(R.id.txtLoginConfirmationMessage);
message.setText("Are you " + empName + "?");
builder.setView(view);
builder.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmPositiveClick(LoginConfirmationDialog.this);
}
});
builder.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mListener.onEmpConfirmNegativeClick(LoginConfirmationDialog.this);
}
});
// Create the AlertDialog object and return it
return builder.create();
}
【问题讨论】:
-
既然您已经在为对话框使用 xml 文件,为什么不在布局中包含两个按钮并在对话框创建中设置
onClick处理程序? -
我想这是一个很好的观点。我有点喜欢使用默认按钮来获得外观和感觉,但我想我可以将按钮直接添加到布局中并在它们上设置侦听器。
-
这个问题提供了替代方法 [stackoverflow.com/questions/8881710/… [1]: stackoverflow.com/questions/8881710/…
-
@Joseph Selvaraj - 感谢您的链接,这看起来也是一个不错的解决方案。给猫剥皮的方法有很多。
标签: java android android-dialogfragment