1

我不想创建一个与 AlertDialog 具有相同外观和感觉(如这个)的对话框项,但按钮具有个性化回调。

我试图创建一个这样的 AlertDialog :

AlertDialog.Builder adb = new AlertDialog.Builder(SearchActivity.this); AlertDialog d = adb.setView(relativeLayout).create(); [..]

                    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
                    lp.copyFrom(d.getWindow().getAttributes());
                    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
                    lp.height = WindowManager.LayoutParams.MATCH_PARENT;

[……]

                    d.setButton(-1, "Retour", new AlertDialog.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
                    d.setButton(-2, "Description",
                            new AlertDialog.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    videoView.setVisibility(View.INVISIBLE);
                                    browser.setVisibility(View.VISIBLE);
                                }
                            });
                    d.setButton(-3, "Video", new AlertDialog.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            videoView.setVisibility(View.VISIBLE);
                            browser.setVisibility(View.INVISIBLE);
                                            }
                    });`

当我单击视频按钮或描述按钮时,对话框会自动关闭。我知道为此使用 AlertDialog 不是最好的主意,但我没有时间学习如何使用片段。

如何防止对话框关闭?

4

1 回答 1

0

按钮按下时的关闭行为内置于AlertController实现 AlertDialog 的其中(参见com.android.internal.app.AlertController的第 143-145 行)。您最好创建自己的子类DialogFragment并将其设置为AlertDialog.

您可以在AlertController. 我无法发布指向包含资源的文件夹的链接,因为我没有足够的声誉,但它是链接存储库中的 core/res/res/。

于 2013-09-19T14:02:25.757 回答