Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android编辑文本验证不起作用?_Android_Validation_Android Edittext - Fatal编程技术网

Android编辑文本验证不起作用?

Android编辑文本验证不起作用?,android,validation,android-edittext,Android,Validation,Android Edittext,我是Android新手,制作和应用程序需要编辑文本和验证。我尝试了不同的方法来验证编辑文本,但不起作用 我想设置要输入的值范围,例如:在13到80之间,如果超过,则给出错误,我的代码仅在编辑文本为空时给出错误,但在值小于13或大于80时不给出错误 以下是我正在使用的代码: EditText age = (EditText)findViewById(R.id.age); EditText weight= (EditText)findViewById(R.id.weight); EditText h

我是Android新手,制作和应用程序需要编辑文本和验证。我尝试了不同的方法来验证编辑文本,但不起作用

我想设置要输入的值范围,例如:在13到80之间,如果超过,则给出错误,我的代码仅在编辑文本为空时给出错误,但在值小于13或大于80时不给出错误

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

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();
             final String w=weight.getText().toString();
             final String h=height.getText().toString();

             if(a.length()==0 || (a.length()<12 && a.length()>81)){
                 age.requestFocus();
                 age.setError("Between 13 ans 80");
             }

             else if(w.length()==0 || (w.length()<40 && w.length()>301)){
                 weight.requestFocus();
                 weight.setError("Weight required!");
             }
             else if(h.length()==0 || (h.length()<49 && h.length()>251)){
                 height.requestFocus();
                 height.setError("Height required!");
             }

         else{

             aN=Integer.parseInt(a);

             wN=Integer.parseInt(w);

             hN=Integer.parseInt(h);

             }
         } 
         });
EditText年龄=(EditText)findViewById(R.id.age);
EditText权重=(EditText)findViewById(R.id.weight);
EditText高度=(EditText)findViewById(R.id.height);
按钮计算=(按钮)findViewById(R.id.btn_cal);
calculate.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
最后一个字符串a=age.getText().toString();
最终字符串w=weight.getText().toString();
最终字符串h=height.getText().toString();
如果(a.length()==0 | |(a.length()81)){
age.requestFocus();
年龄设置错误(“介于13和80之间”);
}
else如果(w.length()==0 | |(w.length()301)){
weight.requestFocus();
设置错误(“需要重量!”);
}
else如果(h.length()==0 | |(h.length()251)){
height.requestFocus();
高度。设置错误(“需要高度!”);
}
否则{
aN=整数.parseInt(a);
wN=整数.parseInt(w);
hN=整数.parseInt(h);
}
} 
});
a.长度()81)
该行表示“长度小于12,同时大于81”。它永远是假的

应该是

int ageValue = Integer.valueOf(a);
if (ageValue < 12 || ageValue > 80) {
int ageValue=Integer.valueOf(a);
如果(年龄值<12 | |年龄值>80){

无需检查
length()==0
,因为它处于
length()<12
状态。

这里是年龄,是字符串,为什么要比较a.length()

实际的可能应该是

int intAge = 0; 
 try{
 intAge = Integer.parseInt(a);
 }catch(Exception e){
 }
  if (a.length()==0 || (intAge < 12 || intAge > 80)) {
// your code  
}
int intAge=0;
试一试{
intAge=Integer.parseInt(a);
}捕获(例外e){
}
如果(a.长度()==0 | | |(凹口<12 | |凹口>80)){
//你的代码
}

然后比较其他情况

您可以使用
Integer.parse()
,例如:

int a = Integer.parse(edittext1.getText().toString().trim());

if(a >= 13 && a <= 80)
{
    //do something
}
int a=Integer.parse(edittext1.getText().toString().trim());
if(a>=13&&a
if(age.getText().toString().length()==0 ||

!(a>12&&a40&&w50&&h我为您提供基本代码,以便您可以根据自己的需要进行扩展。请使用以下代码

MainActivity.java

    editText = (EditText) findViewById(R.id.editText1);
    button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int age = Integer.parseInt(editText.getText().toString().trim());
            if (age > 13 && age <= 80) {
                Toast.makeText(MainActivity.this, "Valid age", Toast.LENGTH_LONG).show();
            }
        }
    });
editText=(editText)findViewById(R.id.editText1);
按钮=(按钮)findViewById(R.id.button1);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
int age=Integer.parseInt(editText.getText().toString().trim());

如果(年龄>13岁和年龄a.长度()81这是错误的。首先将a转换为整数并与12进行比较。你应该比较edittext的值,而不是edittext的长度。请参见下面的答案。不…这又是一个给出错误…我刚刚用完整的代码编辑了我的问题,这可能有助于你正确理解问题。此外,根据经验法则,最好防止invalid值不是通过验证输入的。在edittext布局中使用android:maxLength=“80”。这里a是年龄,它是字符串,为什么要比较a.length()??@Zohaib不应该与a.length()比较。首先将其转换为int,然后进行比较,请参阅我的帖子现在此代码对所有值都给出了错误,无论是0、80还是任何有效值。不…再次给出错误…我刚刚用完整代码编辑了我的问题,这可能会帮助您正确理解问题。不…再次给出错误…我刚刚用完整代码编辑了我的问题可能这会帮助你正确理解问题。不…它再次给出错误…我刚刚用完整的代码编辑了我的问题可能这会帮助你正确理解问题。不…它再次给出错误…我刚刚用完整的代码编辑了我的问题可能会帮助你正确理解问题。“不幸的是,应用程序停止了错误”…请再次检查我的问题,因为我刚刚用完整的代码编辑了它。请发布日志,我猜“你初始化了RadioEnderGroup吗?”日志错误:类型为java.lang.String的值无法转换为JSONObject,Json对象来自何处?我在你的代码中没有看到Json!
     if(age.getText().toString().length()==0 || 
                              !(a>12 && a<=80))
                 {
                     age.requestFocus();
                     age.setError("Between 13 ans 80");
                 }

                 else if(weight.getText().toString().length()==0 || 
                                                 !(w>40 && w<=300))
                 {
                     weight.requestFocus();
                     weight.setError("Weight required!");
                 }
                 else if(height.getText().toString().length()==0 || 
                                                 !(h>50 && h<=250))
                 {
                     height.requestFocus();
                     height.setError("Height required!");
                 }
    editText = (EditText) findViewById(R.id.editText1);
    button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int age = Integer.parseInt(editText.getText().toString().trim());
            if (age > 13 && age <= 80) {
                Toast.makeText(MainActivity.this, "Valid age", Toast.LENGTH_LONG).show();
            }
        }
    });
<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >

    <requestFocus />
</EditText>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="45dp"
    android:text="Button" />