Reputation: 779
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
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