列表视图中的SetImageDrawable

时间:2012-02-27 21:35:17

标签: java android android-listview imageview drawable

在我的列表视图中,我希望它能够改变我所制作的图像视图中的drawable,但每次运行时都会出错。

ImageView Player;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Player = (ImageView)findViewById(R.id.bob);
    setListAdapter(new ArrayAdapter<String>(this, R.layout.pointguards, PointGuards));
    final ListView lv = getListView();
    lv.setTextFilterEnabled(true);
    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View view, int position, long id) {
                    String item = (String) lv.getAdapter().getItem(position);
                    //decide how to launch `Intent` depending on `item`
                    if (item == "bob"){
                Intent intent = new Intent("com.example.nba.playerinfo");
                startActivity(intent);
                Player.setImageDrawable(R.drawable.joe);
        }
    };   

这完全运行,但是当我添加setImageDrawable时它会崩溃。 编辑:我想改变的可绘制是我打算

的意图

2 个答案:

答案 0 :(得分:0)

您没有设置内容视图。您应该设置为:

ImageView player;

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.your_list_layout);   //   <-- setting content view
  player = (ImageView)findViewById(R.id.bob);
.
.
.

答案 1 :(得分:0)

您需要使用Activity而不是Intent中的ListView设置可绘制的图像。您可以使用intent.putExtras("name", name);传递名称。然后在Activity使用setImageDrawable中根据您从Intent附加内容获得的名称。

编辑:从Intent中的Activity检索数据:

Intent intent = getIntent();
String name = intent.getStringExtra("name");

然后设置播放器ImageView

if (name.equalsIgnoreCase("joe")
    Player.setImageDrawable(R.drawable.joe);