使用编辑文本进行Android验证无效?

时间:2014-07-09 11:44:46

标签: android validation android-edittext

我是初学Android和制作和应用程序,需要编辑文本和它的验证。我尝试了不同的方法来验证编辑文本,但是没有用。请帮助我,谢谢。

以下是我正在使用的代码:

    EditText age = (EditText)findViewById(R.id.age);
    EditText weight= (EditText)findViewById(R.id.weight);
    EditText height= (EditText)findViewById(R.id.height);


    Button calculate = (Button) findViewById(R.id.btn_cal);

 calculate.setOnClickListener(new View.OnClickListener() {
         @Override
        public void onClick(View view) {

             final String a=age.getText().toString();
             int aN=Integer.parseInt(a);
             final String w=weight.getText().toString();
             int wN=Integer.parseInt(w);
             final String h=height.getText().toString();
             int hN=Integer.parseInt(h);

             if(a.length()==0){
                 age.requestFocus();
                 age.setError("Between 13 ans 80");
             }
             if(w.length()==0){
                 weight.requestFocus();
                 weight.setError("Weight required!");
             }
             if(h.length()==0){
                 height.requestFocus();
                 height.setError("Height required!");
             }
            }
          });

3 个答案:

答案 0 :(得分:1)

尝试这样的事情:

         if(TextUtils.isEmpty(a)){
             age.requestFocus();
             age.setError("Between 13 ans 80");
         }

希望有所帮助

答案 1 :(得分:1)

试试这个:

calculate.setOnClickListener(new View.OnClickListener() {
         @Override
        public void onClick(View view) {


             if(age.length()==0){
                 age.requestFocus();
                 age.setError("Between 13 ans 80");
             }
             else if(weight.length()==0){
                 weight.requestFocus();
                 weight.setError("Weight required!");
             }
             else if(height.length()==0){
                 height.requestFocus();
                 height.setError("Height required!");
             }

         else{
              a=age.getText().toString();
              aN=Integer.parseInt(a);
              w=weight.getText().toString();
              wN=Integer.parseInt(w);
              h=height.getText().toString();
             hN=Integer.parseInt(h);

             }
            }
          });

使用初始代码,如果editTexts留空,它将给出NumberFormat Exception。我不知道你的代码中是什么,w,h但我猜你错误地认为你的edittexts为a,w,h显然年龄,体重和身高

<强>更新

全局声明字符串和与此代码相关的整数变量,即在onCreate()之前。像字符串a,w,h和int aN,wN,hN。

答案 2 :(得分:0)

尝试这样的代码

 EditText age = (EditText)findViewById(R.id.age);
 EditText weight= (EditText)findViewById(R.id.weight);
 EditText height= (EditText)findViewById(R.id.height);

 age.setInputType(InputType.TYPE_CLASS_NUMBER);
 weight.setInputType(InputType.TYPE_CLASS_NUMBER);
 height.setInputType(InputType.TYPE_CLASS_NUMBER);
 Button calculate = (Button) findViewById(R.id.btn_cal);

  calculate.setOnClickListener(new View.OnClickListener() {
     @Override
    public void onClick(View view) {

         String a=age.getText().toString().trim();
         String w=weight.getText().toString().trim();
         String h=height.getText().toString().trim();

         if(TextUtils.isEmpty(a)){
           age.requestFocus();
           age.setError("Between 13 ans 80");
         }

        if(TextUtils.isEmpty(w)){
             weight.requestFocus();
             weight.setError("Weight required!");
         }
         if(TextUtils.isEmpty(h)){
             height.requestFocus();
             height.setError("Height required!");
         }
         int aN=Integer.parseInt(a);
         int wN=Integer.parseInt(w);
         int hN=Integer.parseInt(h);
        }
      });

DOC:TextUtils.isEmpty()