当用户单击保存按钮时,会出现AlertDialog
并要求用户输入文件名的文本。
如果用户在没有指定名称的情况下单击肯定按钮(“确定”),我想显示要求他们这样做的吐司,并保持AlertDialog
打开。但是吐司从不显示,对话框关闭。
AlertDialog
的代码在这里:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.save_game);
alert.setMessage(R.string.request_name);
// Set an EditText view to get user input
final EditText input = new EditText(this);
input.setHint(R.string.untitled);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
if(value != null){
// Do something with value
}
else{
Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
我怎样才能做到这一点?
谢谢!
Public void showToast() {
Toast.makeText(this, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
只需调用此方法,而不是在代码中的警告对话框中显示吐司。
else {
showToast();
}
要保持打开状态,请使用此方法
public void forceOpen() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(R.string.save_game);
alert.setMessage(R.string.request_name);
// Set an EditText view to get user input
final EditText input = new EditText(this);
input.setHint(R.string.untitled);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
if(value != null) {
// Do something with value
}
else {
Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
}
只是重新打开它..不知道为什么它关闭但这将工作
更改代码如下:
if(value != null && value.length()>0){
// Do something with value
}else{
Toast.makeText(context, R.string.no_name_given, Toast.LENGTH_SHORT).show();
}
您可以禁用“确定”按钮。如果条件有效,则再次启用按钮。
public void alert()
{
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.simple, null);
final EditText etText = (EditText) v.findViewById(R.id.etName);
final AlertDialog d = new AlertDialog.Builder(this)
.setView(v)
.setTitle("Warning ..")
.setPositiveButton(android.R.string.ok,
new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which)
{
//Do nothing here. We override the onclick
Toast.makeText(getApplicationContext(), "Enter Text", Toast.LENGTH_LONG).show();
}
})
.setNegativeButton(android.R.string.cancel, null)
.create();
d.show();
}