2012-03-23 16 views
0

私はspinnerがadd、sub、mul & divを含むアプリケーションを開発しますが、結果は常にゼロになります。ボタンがクリックされたときにアプリを開発する方法は、スピナーの選択された値によって決まります。コードは以下の通りです::無駄なアンドロイドapp..calculatorは常に0を返します

public void Select(View view) 
    { 
     TextView txt1=(TextView)findViewById(R.id.editText1); 
     TextView txt2=(TextView)findViewById(R.id.editText2); 

     int x=Integer.parseInt(txt1.getText().toString()); 
     int y=Integer.parseInt(txt2.getText().toString()); 

     Spinner spin1=(Spinner)findViewById(R.id.spinner1); 
     String spin_value= spin1.getItemAtPosition(spin1.getSelectedItemPosition()).toString(); 

     if(spin_value=="Add") 
     { 
      int z=x+y; 
      String addvalue=String.valueOf(z); 
      Toast.makeText(this, addvalue, Toast.LENGTH_LONG).show(); 
     } 
     else if (spin_value=="Sub") 
     { 
      int p=x-y; 
      String subvalue=String.valueOf(p); 
      Toast.makeText(this, subvalue, Toast.LENGTH_LONG).show(); 
     } 
     else if (spin_value=="Mul") 
     { 
      int k=x*y; 
      String mulvalue=String.valueOf(k); 
      Toast.makeText(this, mulvalue, Toast.LENGTH_LONG).show(); 
     } 
     else 
     { 
      int g=x/y; 
      String divvalue=String.valueOf(g); 
      Toast.makeText(this, divvalue, Toast.LENGTH_LONG).show(); 
     } 
    } 
} 
+0

デバッガで見てみましたか? – Tim

+1

デバッガでこれを試しましたか?私の推測では、else節に落ちているので、整数除算を実行しているので除算は常にゼロになります。 –

+0

これは不十分であるコード全体を貼り付けてくださいoncreateで宣言してウィジェットを参照してくださいonButton clickイベントではありません –

答えて

0

Bob Kaufmanのコメントは正しいです。あなたはあなたが作っている比較のおかげであなたのelseの声明に落ちています。 Javaの文字列を比較するには、equals(Object o)またはequalsIgnoreCaseのメソッド(==ではなく)を使用する必要があります。ただし、比較対象の文字列が同じオブジェクトであるかどうかを判断する必要はありません。

の種類がわからないので、返されている内容は実際にはわかりません。getItemAtPositionだから、まずはStringの比較を行うことは適切でないかもしれません。

ボブのように、私は整数除算のために0を受け取っていると思います。たとえば、txt1に100を入れ、txt2に40を入れたら、あなたのトーストが2と読まれると思います。

関連する問題