17

私のアクティビティはダイアログを開きます。それが閉じたら、関数ReloadTable()を実行する必要があります。だから私は使用しようとしていますsetOnDismissListenerが、トリガーされません。誰かが私が間違っていることを助けてくれませんか?

ありがとう!

AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.transaction, null);
builder = new AlertDialog.Builder(new ContextThemeWrapper(TransactionsList.this , R.style.dialogwithoutdim));
builder.setView(layout);
alertDialog = builder.create();
alertDialog.setOnDismissListener(new OnDismissListener() {
    public void onDismiss(final DialogInterface dialog) {
        ReloadTable();
    }
});

builder.show();
4

6 に答える 6

9

OnCancelListener を AlertDialog.Builder に設定する必要があります。

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                this);
alertDialogBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                dialogmenu = false;
            }
        })
于 2015-12-23T12:01:20.903 に答える
4

わかりました...私は自分でそれを理解しました。

メソッドを実装DialogInterface.OnCancelListenerして追加する必要がありましたonCancel()。出来た!

于 2012-09-22T22:23:32.073 に答える
3

この場合、 を使用しalertDialog.setOnCancelListener(listener)、 を使用する必要がありalertDialog.setOnDismissListenerますdismissDialog(id)

于 2012-09-21T07:06:48.990 に答える