我将对话框创建为:
// 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开发人员的参考资料:
答案 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
祝你好运!