1

我是 android 新手,我正试图让这个自定义对话框工作,我收到一个错误showDialog&上面removeDialog写着 The method removeDialog(int)is undefined for the type new DialogInterface.OnClickListener

onReceive方法:

showDialog(DIALOG_TEXT_ENTRY);

代码:

    private static final int MY_PASSWORD_DIALOG_ID = 0;

    MediaPlayer mp;
    Context context;   

    protected Dialog onCreateDialog(int id, Context context) {

        Dialog dialog = null;
        switch(id) {
        case MY_PASSWORD_DIALOG_ID:
            LayoutInflater factory = LayoutInflater.from(context);

            final View textEntryView = factory.inflate(R.layout.password_dialog, null);

            final EditText password1 = (EditText) textEntryView.findViewById(R.id.inputPassword);

            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("Enter Password");
            builder.setView(textEntryView);

            builder.setPositiveButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int whichButton) {
                      removeDialog(MY_PASSWORD_DIALOG_ID);
                   }
                });

                AlertDialog passwordDialog = builder.create();
                return passwordDialog; 
        }
        return null;
    }
4

5 回答 5

2

利用

dialog.dismiss();

代替

removeDialog(MY_PASSWORD_DIALOG_ID);

您不能在 BroadcastReceiver 中显示对话框。

但是,如果你想显示一个弹出屏幕,那么创建一个带有对话框主题的活动。

于 2012-07-25T11:03:22.223 回答
1

你也可以使用

builder.setPositiveButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int whichButton) {
                       dialog.cancel(); 
                   }
                });

点击按钮应该可以正常工作

也可以参考这个链接

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

于 2012-07-25T11:19:46.803 回答
0

你应该使用dialog.dismiss();而不是你的 removeDialog() 方法。

于 2012-07-25T11:05:37.580 回答
0

见下文。使用解雇();

builder.setPositiveButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int whichButton) {
      dismiss();
   }
};

这样叫showDialog(MY_PASSWORD_DIALOG_ID);

请参阅此创建自定义对话框教程

@Override
protected Dialog onCreateDialog(int id) {
 // TODO Auto-generated method stub

 screenDialog = null;
 switch(id){
 case(ID_SCREENDIALOG):
  screenDialog = new Dialog(this);
  screenDialog.setContentView(R.layout.screendialog);
  bmImage = (ImageView)screenDialog.findViewById(R.id.image);
  TextOut = (TextView)screenDialog.findViewById(R.id.textout);
  btnScreenDialog_OK = (Button)screenDialog.findViewById(R.id.okdialogbutton);
  btnScreenDialog_OK.setOnClickListener(btnScreenDialog_OKOnClickListener);
 }
 return screenDialog;
}
于 2012-07-25T11:06:06.077 回答
0

使用 dialog.dismiss();

请参考以下链接 http://developer.android.com/guide/topics/ui/dialogs.html

于 2012-07-25T13:09:57.007 回答