在我的列表视图中,我希望它能够改变我所制作的图像视图中的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时它会崩溃。 编辑:我想改变的可绘制是我打算
的意图答案 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);