gpt4 book ai didi

android - ListView 的自定义适配器

转载 作者:IT老高 更新时间:2023-10-28 12:52:41 25 4
gpt4 key购买 nike

我想为我的 ListView 创建一个自定义适配器。有没有文章可以指导我如何创建一个并解释它是如何工作的?

最佳答案

public class ListAdapter extends ArrayAdapter<Item> {

private int resourceLayout;
private Context mContext;

public ListAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
this.resourceLayout = resource;
this.mContext = context;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

View v = convertView;

if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(mContext);
v = vi.inflate(resourceLayout, null);
}

Item p = getItem(position);

if (p != null) {
TextView tt1 = (TextView) v.findViewById(R.id.id);
TextView tt2 = (TextView) v.findViewById(R.id.categoryId);
TextView tt3 = (TextView) v.findViewById(R.id.description);

if (tt1 != null) {
tt1.setText(p.getId());
}

if (tt2 != null) {
tt2.setText(p.getCategory().getId());
}

if (tt3 != null) {
tt3.setText(p.getDescription());
}
}

return v;
}

}

这是我在项目中使用的一个类。您需要收集要显示的项目,在我的情况下是 <Item> .您需要覆盖 View getView(int position, View convertView, ViewGroup parent)方法。

R.layout.itemlistrow定义 ListView 的行.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:orientation="vertical"
android:layout_width="fill_parent">

<TableRow android:layout_width="fill_parent"
android:id="@+id/TableRow01"
android:layout_height="wrap_content">

<TextView android:textColor="#FFFFFF"
android:id="@+id/id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="id" android:textStyle="bold"
android:gravity="left"
android:layout_weight="1"
android:typeface="monospace"
android:height="40sp" />
</TableRow>

<TableRow android:layout_height="wrap_content"
android:layout_width="fill_parent">

<TextView android:textColor="#FFFFFF"
android:id="@+id/categoryId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="categoryId"
android:layout_weight="1"
android:height="20sp" />

<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="1"
android:textColor="#FFFFFF"
android:gravity="right"
android:id="@+id/description"
android:text="description"
android:height="20sp" />
</TableRow>

</TableLayout>

MainActivity定义 ListView像这样,

ListView yourListView = (ListView) findViewById(R.id.itemListView);

// get data from the table by the ListAdapter
ListAdapter customAdapter = new ListAdapter(this, R.layout.itemlistrow, List<yourItem>);

yourListView .setAdapter(customAdapter);

关于android - ListView 的自定义适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166497/

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