Reputation: 21
I am trying to change image in imageview based on spinner selection, looked for things like this on stackoverflow and internet but nothing works! Why? Any help appreciated! Here is my .java source:
public class ChordsActivity extends Activity implements OnItemSelectedListener{ Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chords);
spinner = (Spinner) findViewById(R.id.SpinnerAkordi);
spinner.setOnItemSelectedListener(this);
ImageView chord_img=(ImageView) findViewById(R.id.image);
chord_img.setImageResource(R.drawable.c_dur);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
int position = spinner.getSelectedItemPosition ();
ImageView chord_img= new ImageView(this); //delete this and it will work
switch (position){
case 0:
new AlertDialog.Builder(this).setTitle("Odabrali ste akord:").setMessage("C").setNeutralButton("Close", null).show();
chord_img.setImageResource(R.drawable.c_dur);
break;
case 1:
new AlertDialog.Builder(this).setTitle("Odabrali ste akord:").setMessage("D").setNeutralButton("Close", null).show();
chord_img.setImageResource(R.drawable.e_dur);
break;
case 2:
new AlertDialog.Builder(this).setTitle("Odabrali ste akord:").setMessage("E").setNeutralButton("Close", null).show();
chord_img.setImageResource(R.drawable.e_dur);
break;
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
And imageview part of .xml:
Answer: Delete: ImageView chord_img= new ImageView(this); Its because I already had an imageview and with this line I created new imageview which wasn't visible.
Upvotes: 0
Views: 4220
Reputation: 5825
If you promote the local variable chord_img
to a field, it might help. Viz:
private ImageView chord_img;
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
int position = spinner.getSelectedItemPosition ();
chord_img = new ImageView(this);
switch (position){
case 0:
new AlertDialog.Builder(this).setTitle("Odabrali ste akord:").setMessage("C").setNeutralButton("Close", null).show();
chord_img.setImageResource(R.drawable.c_dur);
break;
case 1:
new AlertDialog.Builder(this).setTitle("Odabrali ste akord:").setMessage("D").setNeutralButton("Close", null).show();
chord_img.setImageResource(R.drawable.e_dur);
break;
case 2:
new AlertDialog.Builder(this).setTitle("Odabrali ste akord:").setMessage("E").setNeutralButton("Close", null).show();
chord_img.setImageResource(R.drawable.e_dur);
break;
}
}
Upvotes: 2