Java 当用户单击外侧时,警报对话框消失
大家好,我有一个带有两个文本框的警报框,这里的问题是,当用户在弹出窗口外单击时,警报对话框消失了,或者当用户单击“确定”按钮时,警报对话框也消失了 所以请在这方面帮助我 先谢谢你Java 当用户单击外侧时,警报对话框消失,java,android,xml,android-studio,Java,Android,Xml,Android Studio,大家好,我有一个带有两个文本框的警报框,这里的问题是,当用户在弹出窗口外单击时,警报对话框消失了,或者当用户单击“确定”按钮时,警报对话框也消失了 所以请在这方面帮助我 先谢谢你 final AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this); builder.setTitle("Sign In Failed"); final EditText input1=new EditText(MainActivit
final AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Sign In Failed");
final EditText input1=new EditText(MainActivity.this);
final EditText input2=new EditText(MainActivity.this);
input1.setHint("eNTER name1");
input2.setHint("Enter Name2");
LinearLayout linearLayout= new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
builder.setMessage("Invalid username or password");
linearLayout.addView(input1);
linearLayout.addView(input2);
builder.setView(linearLayout);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
只需将可取消设置为false:
.setCancelable(false)
因为默认情况下它是可取消的 在builder.setView(linearLayout)之后添加此选项- 更新 根据下面的代码片段-
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
单击“确定”按钮时,您正在设置对话框。取消()
如果不执行此操作,您应该根据需要在单击“确定”按钮时设置一些操作
见此:
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel(); // close the current dialog
}
});
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Perform any Intent Action or perform validation as you want
}
});
更新2
只需复制并粘贴下面的代码-工作完美
final EditText input1 = new EditText(MainActivity.this);
final EditText input2 = new EditText(MainActivity.this);
input1.setHint("Enter name1");
input2.setHint("Enter Name2");
LinearLayout linearLayout = new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.addView(input1);
linearLayout.addView(input2);
final AlertDialog builder = new AlertDialog.Builder(MainActivity.this)
.setTitle("Sign In Failed")
.setCancelable(false)
.setMessage("Invalid username or password").setView(linearLayout).setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create();
builder.show();
builder.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (input1.length() <= 0) {
Toast.makeText(MainActivity.this, "Please Enter Name", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "OK", Toast.LENGTH_SHORT).show();
builder.dismiss();
}
}
});
final EditText input1=新的EditText(MainActivity.this);
最终编辑文本输入2=新编辑文本(MainActivity.this);
input1.setHint(“输入name1”);
input2.setHint(“输入Name2”);
LinearLayout LinearLayout=新的LinearLayout(本);
linearLayout.setOrientation(linearLayout.VERTICAL);
linearLayout.addView(输入1);
linearLayout.addView(输入2);
最终AlertDialog生成器=新建AlertDialog.builder(MainActivity.this)
.setTitle(“登录失败”)
.setCancelable(错误)
.setMessage(“无效的用户名或密码”).setView(linearLayout).setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
}
}).create();
builder.show();
builder.getButton(AlertDialog.BUTTON_正值).setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(input1.length()需要将外部触摸设置为false,请尝试以下操作:
setCanceledOnTouchOutside(false);
这也会在用户单击backbutton时使对话框消失,也许这对OP来说不是问题,但我只是想指出。嗨,Onkar,我尝试过builder.setCancelable(false);工作正常,但我的setPositiveButton()中有一些验证方法如果我单击“确定”按钮,弹出消息将消失。请在这方面帮助我,这是因为您正在设置dialog.cancel();在“确定”按钮上单击。使用负按钮作为“取消”,然后在“取消”内单击“使用对话”。cancel()。如果您想在单击“确定”按钮时执行任何操作,请使用Intent。顺便说一句,您想在单击“确定”按钮时执行的操作??您好,我在setPositive()中的验证是(input1.lengthHi Onkar,当用户在input1字段中输入一些文本时,我需要取消对话框,否则我需要通过提供toast消息来限制他,弹出消息不应关闭。Hi Onkar,我尝试了builder.setCancelable(false);工作正常,但我的setPositiveButton()中有一些验证)方法如果我单击“确定”按钮,弹出消息将消失。请在这方面帮助我setPositive()内的验证是如果(input1.lengthif)(input1.lenghtHi muzamil,我已尝试了您的代码示例,但它不起作用。Ram您是否删除了dialog.cancel行
setCanceledOnTouchOutside(false);