AlertDialog通知错误但保持活动最新

时间:2011-06-28 10:01:45

标签: android

我正在尝试进行一些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
          }

我是以错误的方式来做这件事的吗?我应该怎么做才能验证输入?

提前致谢, 马丁

2 个答案:

答案 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();
                    }});