我遇到了EditText的驗證輸入問題。 每當我點擊保存數據按鈕,無論它是有效還是不是有效。 這裏是什麼樣我寫道:EditText驗證不起作用
驗證類:
package android.week04Lab03;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.webkit.URLUtil;
import android.widget.EditText;
public class Validation {
public boolean isEmpty(EditText txt){
if(txt.getText().toString().equals("")){
return false;
} else
return true;
}
public boolean isURL (EditText txt){
if (!URLUtil.isValidUrl(txt.getText().toString())){
return false;
}
return true;
}
public boolean isEmail (EditText txt){
String isEmail = "^([^@\\s]+)@((?:[-a-z0-9]+\\.)+[a-z]{2,})$";
Pattern isEmailPattern = Pattern.compile(isEmail);
Matcher mailMatcher = isEmailPattern.matcher(txt.getText().toString());
if (!mailMatcher.find()) {
return false;
}
return true;
}
}
下面是活動類
public class MetaData extends Activity {
Validation validator;
ImageView angel;
EditText name, loc, keyword, date, mail;
ToggleButton share;
RatingBar rating;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_meta_data);
name = (EditText) findViewById(R.id.name);
..........................
public void saveData(View v) {
Validation validator = new Validation();
if (!validator.isEmpty(name)) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Input Validation Warning");
alert.setIcon(R.drawable.ic_launcher);
alert.setMessage("Error found, please enter your information correctly!");
alert.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alert.show();
}
}
而不是使用'如果(txt.getText()。的toString()== 「」)'比較字符串,也許使用'如果(txt.getText()。的toString()。等於(」 「))'而不是? – dumbfingers
@ ss1271,請將您的回答格式化爲答案。 – Egor
在isEmpty方法中使用txt.getText()。toString()。equals(「」)。 ==用於數字操作。 – SKK