我正在尝试进行一些EditText验证,并希望使用AlertDialog 当用户输入非法的东西时。
如何弹出警告对话框并告诉用户输入有什么问题 按“OK”后再回到相同的视图?
我要等到按下“确认”按钮进行验证并且已经在里面 一个按钮的onClickListener在一个Activity中如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_progress);
//
// user adds info to progress screen
// clicks confirm when done
//
Button confirmButton = (Button) findViewById(R.id.confirm);
confirmButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// do validation code here
//
AlertDialog alert = new AlertDialog.Builder(AddStudentProgress.this).create();
alert.setTitle("Oops");
alert.setMessage("Inputs Can't be Empty");
alert.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// I reall want to go back to the Activity and not really do anything
}});
if ( (mScoreText.getText().toString().equals("") )) {
alert.show();
}
else {
// validation looks ok, continue
}
我是以错误的方式来做这件事的吗?我应该怎么做才能验证输入?
提前致谢, 马丁
答案 0 :(得分:1)
AlertDialog不是提醒用户表单错误的最佳方式。您可以使用有用的消息突出显示字段本身的错误:
if ( (mScoreText.getText().toString().equals("") )) {
mScoreText.requestFocus();
mScoreText.setError("Please enter your name");
}
这样,用户无需关闭警报,他们可以在上下文中看到错误。
答案 1 :(得分:-1)
以下作品将起到作用
alert.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}});