ボタンをクリックしたときにダイアログが閉じないようにする方法 質問する

ボタンをクリックしたときにダイアログが閉じないようにする方法 質問する

入力用のダイアログがありますEditText。ダイアログの「はい」ボタンをクリックすると、入力が検証されてダイアログが閉じます。ただし、入力が間違っている場合は、同じダイアログのままにしておきたいです。入力内容に関係なく、毎回「いいえ」ボタンをクリックするとダイアログが自動的に閉じられる必要があります。これを無効にするにはどうすればよいでしょうか。ところで、ダイアログのボタンには PositiveButton と NegativeButton を使用しています。

ベストアンサー1

編集:いくつかのコメントで指摘されているように、これは API 8 以降でのみ機能します。

これは遅い回答ですが、AlertDialog に onShowListener を追加して、ボタンの onClickListener をオーバーライドすることができます。

final AlertDialog dialog = new AlertDialog.Builder(context)
        .setView(v)
        .setTitle(R.string.my_title)
        .setPositiveButton(android.R.string.ok, null) //Set to null. We override the onclick
        .setNegativeButton(android.R.string.cancel, null)
        .create();

dialog.setOnShowListener(new DialogInterface.OnShowListener() {

    @Override
    public void onShow(DialogInterface dialogInterface) {

        Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Do something

                //Dismiss once everything is OK.
                dialog.dismiss();
            }
        });
    }
});
dialog.show();

おすすめ記事