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();を使用します。

plzは次のリンクを参照してください http://developer.android.com/guide/topics/ui/dialogs.html

于 2012-07-25T13:09:57.007 に答える
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);

このCreate Custom Dialog チュートリアルを参照してください

@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 に答える