Android - 避免 AlertDialog 关闭(错误处理)
Android - avoid AlertDialog to close(Error handling)
我可以知道如何避免 AlertDialog
即使我单击确定也关闭。
之所以这样做是为了在输入错误时做一个简单的错误处理。
------------------------
Input password
------------------------
Password:______________
_______________________
| OK | | Cancel|
我希望在输入错误时保留此对话框。以便用户可以再次输入。
我的代码:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Insert Passcode");
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString() ;
if (m_Text.equals(String.valueOf(passcode_value))){
btnAutoLogin.performClick();
}
else
{
xxxxxxxxxxxxxxx
}
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
首先为按钮点击事件创建自定义监听器Class如下:
class CustomListener implements View.OnClickListener {
private final Dialog dialog;
public CustomListener(Dialog dialog) {
this.dialog = dialog;
}
@Override
public void onClick(View v) {
// Do whatever you want here
// If tou want to close the dialog, uncomment the line below
//dialog.dismiss();
}
}
当您显示对话框或初始化对话框按钮时,如下所示:
AlertDialog dialog = dialogBuilder.create();
dialog.show();
Button button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
button.setOnClickListener(new CustomListener(dialog));
是的,您可以像这样简单地覆盖正面按钮功能:-
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.create();
dialog .show();
dialog .getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// implement your code here
});
我可以知道如何避免 AlertDialog
即使我单击确定也关闭。
之所以这样做是为了在输入错误时做一个简单的错误处理。
------------------------
Input password
------------------------
Password:______________
_______________________
| OK | | Cancel|
我希望在输入错误时保留此对话框。以便用户可以再次输入。
我的代码:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Insert Passcode");
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
builder.setView(input);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString() ;
if (m_Text.equals(String.valueOf(passcode_value))){
btnAutoLogin.performClick();
}
else
{
xxxxxxxxxxxxxxx
}
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
首先为按钮点击事件创建自定义监听器Class如下:
class CustomListener implements View.OnClickListener {
private final Dialog dialog;
public CustomListener(Dialog dialog) {
this.dialog = dialog;
}
@Override
public void onClick(View v) {
// Do whatever you want here
// If tou want to close the dialog, uncomment the line below
//dialog.dismiss();
}
}
当您显示对话框或初始化对话框按钮时,如下所示:
AlertDialog dialog = dialogBuilder.create();
dialog.show();
Button button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
button.setOnClickListener(new CustomListener(dialog));
是的,您可以像这样简单地覆盖正面按钮功能:-
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.create();
dialog .show();
dialog .getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// implement your code here
});