0
我想创建一个自定义ListView
使用ArrayAdapter
。 POJO Item
类:ListView中的ImageView与自定义ArrayAdapter
public class Item {
String itemTitle = "", itemTimestamp = "", itemDescription = "";
ImageView itemImage;
public String getTitle() {
return itemTitle;
}
public String getDescription() {
return itemDescription;
}
public String getTimeStamp() {
return itemTimestamp;
}
public ImageView getImage() {
return itemImage;
}
public Item(String itemTitle, String itemTimestamp, String itemDescription,
ImageView itemImage) {
super();
this.itemTitle = itemTitle;
this.itemDescription = itemDescription;
this.itemTimestamp = itemTimestamp;
this.itemImage = itemImage;
}
public void setItemTitle(String title) {
itemTitle = title;
}
public void setItemTimestamp(String timestamp) {
itemTimestamp = timestamp;
}
public void setItemDescription(String itemDesc) {
itemDescription = itemDesc;
}
public void setItemImage(ImageView image) {
itemImage = image;
}
}
这里自定义阵列适配器的外观like.It如下图所示:
public class ListAdapter extends ArrayAdapter<Item> {
public ListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
// TODO Auto-generated constructor stub
}
private List<Item> items;
public ListAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.list_item_default, null);
}
Item p = items.get(position);
if (p != null) {
TextView list_title = (TextView) v.findViewById(R.id.list_title);
TextView list_description = (TextView) v.findViewById(R.id.list_description);
TextView list_timestamp = (TextView) v
.findViewById(R.id.list_timestamp);
ImageView list_image = (ImageView) v.findViewById(R.id.list_image);
if (list_title != null) {
list_title.setText(p.getTitle());
}
if (list_description != null) {
list_description.setText(p.getDescription());
}
if (list_timestamp != null) {
list_timestamp.setText(p.getTimeStamp());
}
if (list_image != null) {
list_image.setImageResource(p.getImage(R.drawable.btn_bg_pressed));
}
}
return v;
}
}
错误:
The method setImageResource(int) in the type ImageView is not applicable for the arguments (ImageView)
我不知道如何设置ListView
的默认图像,并且应该根据此更改我在运行时从互联网上提供数组。
图像具有动态改变,但是从本地文件夹绘制直到其加载显示默认图像。你能显示我可以在代码中分配这个图像吗? –
@HarshaMV我不认为我理解你的问题。在您的自定义行布局'R.layout.list_item_default'中,您有一个'ImageView'。你有没有尝试像这样设置属性'src'到你的'ImageView':'android:src =“@ drawable/some_drawable”'这样你的ImageView就已经有了图片? – Luksprog
是的,我已经做到了这一点,以获得默认图像。现在,当我提供一个数组时,图像视图应该显示来自所提到URL的图像。我有4个字段 - 3个文本视图,其中1个是图像视图。 –