LMVogel
LMVogel

Reputation: 779

Android onItemSelected function not recognizing instance variables

My onItemSelected function for my spinner is not recognizing the variables (declared as final) in the activity. I have onClickListener functions in the same activity for buttons that ARE recognizing these same variables.

Here is some of the code:

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;
    }

}

The error (next to every line): 'tv2 cannot be resolved'

Upvotes: 0

Views: 319

Answers (1)

AAnkit
AAnkit

Reputation: 27549

declare tv2 at class level like below. remove declaration from onCreate

private TextView tv2

Your code must look like below code

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;
    }

}

Upvotes: 1

Related Questions