故障设置对话框正面按钮

时间:2013-06-28 02:35:42

标签: android android-xml android-dialog

我将对话框创建为:

// custom dialog
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.add_taste_dialog);       
dialog.setTitle("Add Taste");

然后我尝试将正面按钮设置为:

dialog.setPositiveButton(R.string.addtaste, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {




            }
        });

Eclipse给我这个错误:

The method setPositiveButton(int, new DialogInterface.OnClickListener(){}) is undefined for the type Dialog

我在这里关注Android开发人员的参考资料:

http://developer.android.com/guide/topics/ui/dialogs.html

2 个答案:

答案 0 :(得分:1)

如果您使用自定义xml布局进行对话。那你为什么不在你的自定义布局中放置正面按钮?只需将按钮放在对话框xml文件中,然后在其点击事件中执行操作。

Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
        // if button is clicked, close the custom dialog
        dialogButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });

答案 1 :(得分:0)

如错误消息所示,未为setPositiveButton类定义Dialog方法。但是,它是为AlertDialog.Builder类定义的:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Add Taste")
builder.setPositiveButton(R.string.addtaste, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
          //code goes here
        }
}
AlertDialog dialog = builder.create()

如果您提供给对话框的布局超出标准AlertDialog可以容纳的范围,您可以使用当前代码与对话框类的findViewById(int id)方法一起找到您的按钮,前提是您有在您添加的布局中包含一个按钮。否则,您可以使用addContentView(View view, ViewGroup.LayoutParams params)方法添加按钮。

以下是调查这些方法的对话框类的参考:http://developer.android.com/reference/android/app/Dialog.html

祝你好运!