Java 列表视图中的SetImageDrawable
在我的列表视图中,我想让它改变我创建的图像视图中的可绘制内容,但每次运行它时都会出错Java 列表视图中的SetImageDrawable,java,android,android-listview,imageview,drawable,Java,Android,Android Listview,Imageview,Drawable,在我的列表视图中,我想让它改变我创建的图像视图中的可绘制内容,但每次运行它时都会出错 ImageView Player; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Player = (ImageView)findViewById(R.id.bob); setListAdapter(new ArrayAdapter<St
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);
}
};
ImageView播放器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Player=(ImageView)findviewbyd(R.id.bob);
setListAdapter(新的ArrayAdapter(this,R.layout.pointguard,pointguard));
最终ListView lv=getListView();
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
字符串项=(字符串)lv.getAdapter().getItem(位置);
//根据“项目”决定如何启动“意图”`
如果(项目==“bob”){
意向意向=新意向(“com.example.nba.playerinfo”);
星触觉(意向);
Player.setImageDrawable(R.drawable.joe);
}
};
这运行得很好,但是当我添加setImageDrawable时,它崩溃了。
编辑:我要更改的绘图表的目的是,我将要您没有设置内容视图。您应该设置为:
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);
.
.
.
ImageView播放器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.your_list_layout);//您需要在使用Intent
启动的活动中设置图像可绘制,而不是在列表视图中设置。您可以使用Intent.putExtras(“name”,name)传入名称
。然后在活动中
根据从意图
额外获取的名称使用setImageDrawable
编辑:从活动中的意图
检索数据
:
Intent intent = getIntent();
String name = intent.getStringExtra("name");
然后像这样设置播放器ImageView
:
if (name.equalsIgnoreCase("joe")
Player.setImageDrawable(R.drawable.joe);
很抱歉,我忘了提到,我要更改的图片是我要更改的另一个目的,而且,这不起作用,因为数组适配器中已经提到了内容。请澄清您希望图像如何工作:何时更改图像?单击列表项时?还是仅加载图像一次整个列表加载时的每个列表项?是每个列表项中的图像,还是您试图将其加载到其他位置?图像位于drawables文件夹中,当前为bob,我想在单击bob时将其更改为joe。因此,您想在列表项中显示图像,单击该列表项时,图像会更改?还是单击g在活动
中更改列表项和图像,您将以意图
启动该活动?因此,您能否告诉我代码希望获得额外的内容?