0

私は最も奇妙な問題を抱えています...

私がやろうとしているのは、EditText から値を取得し、検証を行うことだけです。

edittext の値は 1 から 10 の間である必要があります。ただし、 1 から 10 の間の任意の数値を入力しても、false と検証されます。edittext 入力をテストして、それが正しいことを確認しましたが、そうですが、それでも失敗します。何か案は ?

コードは次のとおりです。

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"。これはオブジェクト参照を比較し、明らかに2つのオブジェクトは異なる参照を持っています。

equals(Object object)文字列オブジェクトのメソッドを呼び出します。好き、

test.isEquals("1")

入力文字列を次のように整数に解析することをお勧めします

int testInteger = Integer.parseInt(test);

と比較します

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

これにより、文字列オブジェクトへの多くのメソッド呼び出しが節約されます。

于 2013-01-24T09:54:39.970 に答える
0

String の場合は .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 に答える