0

我将我的对话框创建为:

// 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

4

2 回答 2

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();
            }
        });
于 2013-06-28T04:26:45.217 回答
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

祝你好运!

于 2013-06-28T03:06:27.823 回答