在我的 ListView 中,我想这样做,以便它可以更改我制作的 ImageView 中的可绘制对象,但每次运行它时都会出现错误。
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 时它崩溃了。 编辑:我想要更改的可绘制对象是我想要的 Intent
最佳答案
您需要在使用 Intent
启动的 Activity
中设置可绘制图像,而不是在 ListView
中。您可以使用 intent.putExtras("name", name);
传递名称。然后在 Activity
中根据从 Intent
extra 获取的名称使用 setImageDrawable
。
编辑:从Activity
中的Intent
检索数据:
Intent intent = getIntent();
String name = intent.getStringExtra("name");
然后像这样设置播放器ImageView
:
if (name.equalsIgnoreCase("joe")
Player.setImageDrawable(R.drawable.joe);
关于java - 在 ListView 中设置ImageDrawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472651/