2012-04-05 9 views
0

私はアンドロイドアプリで作業しています。スピナーを埋め込んでいます...私は合計4つのスピナーを持っています。スピナーが選択肢を文字列から読み込むと、最初のオプションは、次のようにして「1」である「0」である)同じクラスのスピナーからintを使用できないのはなぜですか?

私はスピナー

 Spinner a = (Spinner) findViewById(R.id.spinner1); 
    a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView adapter, View v, int a, 
       long lng) { 
      // do something here 
      Toast.makeText(adapter.getContext(), "You selected: " + a, 
        Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView arg0) { 
      // do something else 
     } 
    }); 

と別のものが、int型「B」

持つため、次のコードを持っていますが、後で同じクラスでe = a、b(つまり、a = 6、b = 5 e = 65、a = 4、b = 3 e = 43の場合)を得るためにいくつかの数学を使いたい。 これは簡単な問題は、私はあなたがボタンを押したときにこれを表示したいので、私は次のコード

public void Calc(View v) { 
    int e = a * 10 + b; 
    Toast.makeText(this, "Value: " + e, Toast.LENGTH_LONG).show(); 
} 

を持っていますが、エラーが発生「」A」

int e=a*10+b; 

を実行することによって行われます& "b"は変数 " に解決できません。なぜですか?また、これらの変数を読み取ることができるボタンを作成するにはどうすればよいですか?

答えて

0

メソッド内にaを宣言しているので、スコープの問題です。メソッド外ではアクセスできません。クラスメンバーとしてのスピナーを宣言し、そして唯一の方法でそれを割り当てる:

クラススコープ:メソッドで

Spinner a; 

:次に

a = (Spinner) findViewById(R.id.spinner1); 

public void Calc(View v) { 
    int itemA, itemB; 
    itemA = a.getSelectedItemPosition(); 
    itemB = b.getSelectedItemPosition(); 
    int e = itemA * 10 + itemB; 
    Toast.makeText(this, "Value: " + e, Toast.LENGTH_LONG).show(); 
} 
+0

ありがとうございましたそんなに – Vigi

関連する問題