2

ここでの私の単純なコードは、Androidのダイアログを示しています。ユーザーがダイアログの外側をクリックしたとき、またはダイアログがフォーカスを失ったときに、ダイアログを非表示にしたくない。どうすればいいですか?

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
  public void onClick(DialogInterface dialog, int which) {
    switch (which) {
      case DialogInterface.BUTTON_POSITIVE:
        Toast.makeText(getApplicationContext(), "yes", Toast.LENGTH_LONG).show();
        break;
      case DialogInterface.BUTTON_NEGATIVE:
        Toast.makeText(getApplicationContext(), "no", Toast.LENGTH_LONG).show();
        break;
      }
    }
  };

そしてボタンコードは次のとおりです。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure?")
  .setPositiveButton("Yes", dialogClickListener)
  .setNegativeButton("No", dialogClickListener).show();

ありがとう。

4

3 に答える 3

5

外をクリックした場合に非表示にするためにこれを使用します dialog.setCanceledOnTouchOutside(true);

または、クリックした場合に非表示にしないためにこれを使用しますdialog.setCanceledOnTouchOutside(false);

于 2012-12-29T14:37:03.087 に答える
3

を使用dialog.setCanceledOnTouchOutside(false)すると、ユーザーがボックスの外側をクリックした場合にのみダイアログが非表示になりますが、Androidデバイスの[戻る]ボタンをクリックした場合は非表示になりません。

使用dialog.setCancelable(false)すると両方が防止されます。

于 2013-05-03T14:10:39.727 に答える
0

このサンプルコードは正常に機能していますが、

final Dialog dialog = new Dialog(context);
        dialog.setContentView(R.layout.activity_test);
        dialog.setTitle("Title...");
        dialog.setCanceledOnTouchOutside(false);
        dialog.show();
于 2012-12-29T15:56:58.737 に答える