dialoginterface(android Dialog 点击后消失)

本文目录
android Dialog 点击后消失
Android中的弹出框在被点击时, 无论点击哪个按钮都会关闭窗口。
但是有的情况下我们不需要立即关闭窗口。
下面的情况是弹出框中要求用户输入文件名,并在点击确定时检查文件名的合法性, 不合法则提示用户重新输入,弹出框要保持在界面上使用反射 (如图)
DialogInterface.OnClickListener dialogListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
try {
//不关闭
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
if(inputCheck()){
//关闭对话框
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, true);
} catch (Exception e) {
e.printStackTrace();
}
dialog.dismiss();
}
break;
case DialogInterface.BUTTON_NEGATIVE:
dialog.dismiss();
break;
default:
break;} } };
android 中如何让dialog在一个指定控件下方显示
Android中Dialog的示例代码如下:
1.创建对象框
AlertDialog.Builder
builder
=
new
Builder(context);
builder.setTitle("请输入");
//设置对话框标题
builder.setIcon(android.R.drawable.btn_star);
//设置对话框标题前的图标
2.创建EditText输入框
final
EditText
edit
=
new
EditText(context);
3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认",
new
DialogInterface.OnClickListener()
{
@Override
public
void
onClick(DialogInterface
dialog,
int
which)
{
Toast.makeText(context,
"你输入的是:
"
+
edit.getText().toString(),
Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",
new
DialogInterface.OnClickListener()
{
@Override
public
void
onClick(DialogInterface
dialog,
int
which)
{
Toast.makeText(context,
"你点了取消",
Toast.LENGTH_SHORT).show();
}
});
4.设置常用api,并show弹出
builder.setCancelable(true);
//设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog
dialog
=
builder.create();
//创建对话框
dialog.setCanceledOnTouchOutside(true);
//设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();

更多文章:
windowsxp64位sp3(windows xp sp3 支持多大内存)
2025年12月13日 05:30
win10教育版(win10教育版和专业工作站版有什么区别,哪个强)
2025年7月8日 21:00
看门狗2手游正版(看门狗2能跳过uplay吗 玩正版游戏方法)
2026年4月13日 00:30
windowsserver(什么是windows server)
2025年6月18日 02:30
win7局域网共享软件(win7系统笔记本电脑怎么共享无线网络,安卓系统手机连接)
2026年7月23日 00:30
交管12123手机版下载安装(烟台交管12123 app下载在哪里)
2026年1月9日 10:30














