1

如何对edittext执行验证,即我有一个edittext,其中输入了一个名称,这个名称应该是最多10个字母的varchar(type)。

4

2 回答 2

0

您可以通过设置 OnFocusChangeListener 在 EditText 失去焦点时检查它,然后您可以这样做:

@Override
public void onFocusChange(View v, boolean hasFocus) {

    switch(v.getId()){
        case R.id.editText:
            if(!hasFocus)
            {
            String StEditText = EditTextView.getText().toString();
            if(StEditText.Length() > 10)
            {
                //Do Some Work
            }
        }
        break;
    }
 }
于 2013-09-28T08:29:52.640 回答
0

有几种方法可以实现这个......我会告诉你我在我的应用程序中做了什么......

这是为了获得一个数值,但相同的逻辑可用于您需要的任何内容:

setAge.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            String sAge = setAge.getText().toString();

            if (isNumeric(sAge)) {
                Age = Integer.parseInt(sAge);

                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(setAge.getWindowToken(), 0);

                if (Age < 0) {
                    Toast.makeText(DietActivity.this,
                            "Enter Computable Values", Toast.LENGTH_SHORT)
                            .show();
                }
            }

        }
    });

这是 isNumeric :(您可以忽略它或更改它以检查其他类型和内容)

    public static boolean isNumeric(String str) {
    try {
        int i = Integer.parseInt(str);
    } catch (NumberFormatException nfe) {
        return false;
    }
    return true;
}

如果您只想检查长度,请使用 .length() 之类

if(setAge.length()>10){
//do whatever
}
于 2013-09-28T09:54:02.140 回答