我在网上看到的所有示例每个项目仅包含 1 个 TextView,并且它们从数组加载数据。我不明白如何指定哪些数据去哪里。例如,我的项目布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/receiver"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
如何将数据保存在数组中,以便它可以在具有此布局的 ListView 中使用?
最佳答案
这是自定义列表适配器:
private class ListAdapter extends ArrayAdapter<RSSItem> {
private List<Item> items;
public ListAdapter(Context context, int textViewResourceId, List<Item> items) {
super(context, textViewResourceId, items);
this.items = items;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.list_item, null);
}
Item item = items.get(position);
if (item != null) {
TextView title = (TextView) v.findViewById(R.id.tvTitle);
TextView description = (TextView) v.findViewById(R.id.tvDescription);
if (title != null) {
title.setText(item.getTitle());
}
if (description != null) {
description.setText(item.toString());
}
}
return v;
}
}
这是一个 Item 类,女巫将保存您的数据:
public class Item {
private String title = null;
private String description = null;
RSSItem() {
}
public void setTitle(String title) {
this.title = title;
}
public void setDescription(String description) {
this.description = description;
}
public String getTitle() {
return title;
}
public String getData() {
return data;
}
}
...这里是一个类,您可以使用它获取某种数组中的所有列表数据:
public class ListData {
private int itemcount = 0;
private List<Item> itemlist;
ListData () {
itemlist = new Vector<Item>();
}
int addItem(Item item) {
itemlist.add(item);
itemcount++;
return itemcount;
}
Item getItem(int location) {
return itemlist.get(location);
}
List<Item> getAllItems() {
return itemlist;
}
int getItemCount() {
return itemcount;
}
}
在您的主类(Activity)中,您应该正确填写您的数据。
关于每个项目有 2 个 TextView 的 Android ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6793999/