0

我有一个最奇怪的问题...

我要做的就是从 EditText 获取值并进行一些验证。

edittext 中的值必须介于 1 和 10 之间。但是,即使我输入 1 或 10 之间的任何数字,它仍然会验证为 false。我什至测试了 edittext 输入以确保它是正确的,它是正确的,但是 if 仍然失败。有任何想法吗 ?

这是代码:

ed = (EditText) dialog2.findViewById(R.id.ed_quantity);                                                  
Button bq = (Button) dialog2.findViewById(R.id.alert_a);
dialog2.setCancelable(false);
dialog2.show();
bq.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v)
    {
        String test = ed.getText().toString();
        Toast toast23452234 = Toast.makeText(mContext, "Quantity: "+test, Toast.LENGTH_LONG);
        toast23452234.show();
        if(test=="1"||test=="2"||test=="3"||test=="4"||test=="5"||test=="6"||test=="7"||test=="8"||test=="9"||test=="10")
        {
            quantity = Integer.parseInt(ed.getText().toString());
            dialog2.dismiss();
            ed.setText("1");
        }
        else
        {
            Toast toast2345223 = Toast.makeText(mContext, "Quantity must be between 1 and 10" , Toast.LENGTH_LONG);
            toast2345223.show();
        }
    }
});
4

6 回答 6

1

尝试这个

 test.trim().equalsIgnoreCase("1")

在你的 if 条件下

于 2013-01-24T10:24:46.070 回答
0

使用equals方法比较字符串..

if(test.equals("1")||test.equals("2")||test.equals("3")||test.equals("4")||test.equals("5")||test.equals("6")||test.equals("7")||test.equals("8")||test.equals("9")||test.equals("10"))

或使用 int 进行比较

int test = Integer.valueOf(ed.getText().toString());
于 2013-01-24T09:54:39.927 回答
0

String不是原生类型,所以你不能这样做test=="1"。这比较了对象引用,显然这两个对象具有不同的引用。

调用equals(Object object)字符串对象的方法。喜欢,

test.isEquals("1")

更好地将输入字符串解析为整数

int testInteger = Integer.parseInt(test);

并比较为

if(testInteger==1 || testInteger ==2)

这节省了对字符串对象的许多方法调用。

于 2013-01-24T09:54:39.970 回答
0

如果是字符串,请使用 .equals("")。

if(test.equals("1")||test.equals("2")||test.equals("3")||test.equals("4")||test.equals("5")||test.equals("6")||test.equals("7")||test.equals("8")||test.equals("9")||test.equals("10"))
于 2013-01-24T09:55:43.977 回答
0

在字符串操作上使用 .equals 而不是 ==

  if(test.equals("1")||... and so on) 

否则将字符串转换为“int”。

于 2013-01-24T09:56:09.093 回答
0

使用test.equals("1")|| ......

你也可以这样做

int t = Integer.parseInt(test);
if(t == 1 || t == 2 || ...)
于 2013-01-24T09:56:45.380 回答