0

ネットワーク接続が検出されない場合にユーザーにダイアログ ボックスを表示する次のコードがあります。

private void createNoNetworkDialog() {

    LayoutInflater inflater = LayoutInflater.from(this);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    View view = inflater.inflate(R.layout.offline_mode_dialog,null);
    builder.setView(view);
    builder.show();

}

このダイアログには、onClick アクション用にメソッドが定義された 2 つのボタンがあります。これらのボタンのいずれかが押された後、ダイアログのポップアップを閉じたいと思います。何か案は??

4

2 に答える 2

1

はい、参照が渡されたのでdismiss()から呼び出しListenerます。これにより、却下が可能になります。onClickDialogInterface

例えば

builder.setPositiveButton ("Yes", new DialogInterface.OnClickListener()
                             {
  public void onClick (DialogInterface dialog, int which)
  {
    //do stuff beforehand
    dialog.dismiss();
  }
});

または、ボタンがレイアウト内にある場合は、ダイアログを表示し、それへの参照を保持します ( final AlertDialog dialog = builder.show())。次に、 を使用dialog.findViewById()してそれぞれのボタンを見つけます。保持しているダイアログ参照を使用して、法線View.OnClickListenerとその呼び出しを割り当てます。dismiss()

于 2013-01-30T16:55:30.753 に答える
0

これを試してみてください。カスタムレイアウトを使用しています。初期Button custon_dialog.findViewById()化してから書き込みOncliclListner()ます。それが動作します

    final Dialog custon_dialog = new Dialog(Login.this);
            custon_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            custon_dialog.setContentView(R.layout.forget_custom_dialog);
            custon_dialog.setCancelable(true);
         Button submit_Btn = (Button) custon_dialog
                    .findViewById(R.id.submit);
        Button cancel_Btn = (Button) custon_dialog
                    .findViewById(R.id.cancel);
       submit_Btn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
      //do your stuf
                        }

            });
        cancel_Btn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                 custon_dialog.dismiss();
                        }

            });
        custon_dialog.show();
        }
于 2013-01-30T16:57:28.667 に答える