0

スピナーの onItemSelected 関数が、アクティビティ内の変数 (final として宣言されている) を認識していません。これらの同じ変数を認識しているボタンの同じアクティビティに onClickListener 関数があります。

コードの一部を次に示します。

public class Currency extends Activity implements OnItemSelectedListener{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_currency);
    final TextView tv2 = (TextView) findViewById(R.id.textView2);
    final TextView tv3 = (TextView) findViewById(R.id.textView3);

}

@Override
public void onItemSelected(AdapterView<?> arg0, View v, int position,
        long arg3) {
    switch (position) {
    case 0:
        tv2.setText("something");
        tv3.setText("something");
        break;
    case 1:
        tv2.setText("something");
        tv3.setText("something");
    case 2:
        tv2.setText("something");
        tv3.setText("something");
        break;

        default:
        break;
    }

}

エラー (すべての行の横): 「tv2 を解決できません」

4

1 に答える 1

1

以下のようにクラスレベルで tv2 を宣言します。onCreate から宣言を削除

private TextView tv2

あなたのコードは以下のコードのように見える必要があります

public class Currency extends Activity implements OnItemSelectedListener{
 private TextView tv2;
private TextView tv3;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.activity_currency);
     tv2 = (TextView) findViewById(R.id.textView2);
     tv3 = (TextView) findViewById(R.id.textView3);

}


@Override
public void onItemSelected(AdapterView<?> arg0, View v, int position,
        long arg3) {
    switch (position) {
    case 0:
        tv2.setText("something");
        tv3.setText("something");
        break;
    case 1:
        tv2.setText("something");
        tv3.setText("something");
    case 2:
        tv2.setText("something");
        tv3.setText("something");
        break;

        default:
        break;
    }

}
于 2013-01-16T16:39:57.687 に答える