0

我正在尝试根据微调器选择更改图像视图中的图像,在 stackoverflow 和互联网上寻找类似的东西,但没有任何效果!为什么?任何帮助表示赞赏!这是我的 .java 源代码:

公共类 ChordsActivity 扩展 Activity 实现 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

}

}

和 .xml 的 imageview 部分:

答:删除:ImageView chord_img= new ImageView(this); 这是因为我已经有一个 imageview 并且通过这条线我创建了不可见的新 imageview。

4

1 回答 1

2

如果您将局部变量chord_img提升为字段,它可能会有所帮助。即:

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;
    }
}
于 2013-01-16T23:10:40.440 回答