我不想创建一个对话框项目,具有与AlertDialog相同的外观和感觉(like this one),但按钮具有个性化回调。
我试图像这样创建一个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不是最好的主意,但我没有时间学习如何使用片段。
如何阻止对话框关闭?
答案 0 :(得分:0)
按钮上的解除按下行为内置于AlertController
中,它实现了AlertDialog(参见com.android.internal.app.AlertController的第143-145行)。您最好创建自己的DialogFragment
子类,并将其设置为AlertDialog
。
您可以在AlertController
的第188-205行找到相关布局/样式的参考。我无法发布带有资源的文件夹的链接,因为我没有足够的声誉,但它是链接仓库中的核心/ res / res /。