gpt4 book ai didi

android - 如何在自定义 ListActivity 布局中更改 ImageView 资源?

转载 作者:行者123 更新时间:2023-11-30 04:26:24 24 4
gpt4 key购买 nike

在我的应用程序中,我有一个 ListActivity 和一个自定义布局。在自定义布局中,我有一个 ImageView 和一个 TextView。

我希望能够根据应用程序中的某些条件代码更改 ImageView 资源。但是,当我尝试 image.setImageResource(resource); 时,我得到了 javaNullPointerException。我试过将代码 fragment 放在不同的地方,比如在适配器之后。有人有什么想法吗?提前致谢。

此外,我确实在使用 ImageView image = (ImageView) findViewById(R.id.image);

引用它之前声明了 ImageView

编辑:

在我的 Activity 中:

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, DlistArray));

// Here I want to change the image
ImageView celebIcon = (ImageView) findViewById(R.id.icon);
celebIcon.setImageResource(R.drawable.phil);

ListView celebList = getListView();
registerForContextMenu(getListView());
celebList.setTextFilterEnabled(true);

在我的布局中:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:cacheColorHint="#00000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<ImageView
android:id="@+id/icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:padding="10dp"
android:src="@drawable/alan" />

<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_gravity="center_vertical"
android:text="@+id/label"
android:textColor="#ffffff"
android:textSize="20dp" />
</LinearLayout>

最佳答案

使用自定义适配器:

setListAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item, R.id.label, yourItems){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if( convertView == null ){
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.list_item, null);
}

ImageView image = (ImageView) findViewById(R.id.icon);
image.setImageResource(R.drawable.phil);
return convertView;
}
});

(如果你想重用它,你也可以创建自己的类来扩展 arrayadapter)

要设置 TextView ,只需在 getView() 方法中添加相关代码,就像图像设置代码一样。

关于android - 如何在自定义 ListActivity 布局中更改 ImageView 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com