2

同様の質問が寄せられており、見つけたすべてのものをすでに調べましたが、この問題に対する答えは見つかりませんでした。

コードは次のとおりです。

    protected Dialog onCreateDialog(int id)
    {
        Dialog dialog = new Dialog(this);
        switch(id)
        {
            case R.layout.database_feed:
                dialog.setContentView(R.layout.database_feed);
                ((Button) dialog.findViewById(R.id.discard_button)).setOnClickListener(
                    new View.OnClickListener() 
                    {
                        //@Override
                        public void onClick(View v) 
                        {
                            //dialog.cancel();
                        }
                    }
                );
                break;
        }
        return dialog;
    }

R.layout.database_feed ボタンをクリックしてダイアログを閉じたいだけです。しかし、onClick メソッド内のダイアログにアクセスできません。私は本当に混乱しています。

AlertDialog や DialogBu​​ilder を使用したくありません。Dialog には、AlertDialog などで実装するのが難しいものが他にもあるためです。また、ダイアログ用に別のアクティビティを作成するソリューションを既に知っていますが、実際には、ここで試している方法でどのように機能するかを知りたいです。さらに、私はすでに DialogInterface.OnClickListener() を使用しようとしましたが、setOnClickListener(...) メソッドでは使用できません。

ダイアログをキャンセルするのはそれほど難しいことではありません...しかし、私にはわかりません。

ヒント/ヘルプをいただければ幸いです。

どうも

4

2 に答える 2

4

変化する

Dialog dialog = new Dialog(this);

final Dialog dialog = new Dialog(this);

次に、onClick() メソッドでダイアログにアクセスできます。

于 2012-03-20T16:10:25.487 に答える
2

「ダイアログ」をクラス変数として保存するか、メソッドで最終的にします。

于 2012-03-20T16:12:15.557 に答える