Android ItemList的适配器如何实现

   2024-09-30 2220
核心提示:在Android中,要实现一个ItemList的适配器,你需要创建一个自定义的适配器类,该类继承自BaseAdapter或者ArrayAdapter。以下是一

在Android中,要实现一个ItemList的适配器,你需要创建一个自定义的适配器类,该类继承自BaseAdapter或者ArrayAdapter。以下是一个简单的示例,展示了如何实现一个自定义的适配器:

首先,创建一个自定义的布局文件(例如:list_item.xml),用于显示列表中的每个项目。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal"    android:padding="8dp">   <ImageView        android:id="@+id/image"        android:layout_width="48dp"        android:layout_height="48dp"        android:src="https://mykuaidi.com/static/image/lazy.gif" class="lazy" original="https://www.mykuaidi.com/static/image/nopic320.png" />   <TextView        android:id="@+id/text"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_weight="1"        android:paddingLeft="8dp"        android:text="Item Text"        android:textSize="16sp" /></LinearLayout>
创建一个自定义的适配器类(例如:MyListAdapter.java),继承自BaseAdapter。
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.List;public class MyListAdapter extends BaseAdapter {    private List<Item> itemList;    private LayoutInflater inflater;    public MyListAdapter(Context context, List<Item> itemList) {        this.itemList = itemList;        inflater = (LayoutInflater) context.getSystEMService(Context.LAYOUT_INFLATER_SERVICE);    }    @Override    public int getCount() {        return itemList.size();    }    @Override    public Object getItem(int position) {        return itemList.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ViewHolder viewHolder;        if (convertView == null) {            convertView = inflater.inflate(R.layout.list_item, parent, false);            viewHolder = new ViewHolder();            viewHolder.image = convertView.findViewById(R.id.image);            viewHolder.text = convertView.findViewById(R.id.text);            convertView.setTag(viewHolder);        } else {            viewHolder = (ViewHolder) convertView.getTag();        }        Item item = itemList.get(position);        viewHolder.image.setImageResource(item.getImageResource());        viewHolder.text.setText(item.getText());        return convertView;    }    static class ViewHolder {        ImageView image;        TextView text;    }}
在你的Activity或Fragment中,使用这个自定义适配器来显示列表数据。
ListView listView = findViewById(R.id.list_view);List<Item> itemList = new ArrayList<>();// 添加数据到itemListMyListAdapter adapter = new MyListAdapter(this, itemList);listView.setAdapter(adapter);

这样,你就成功地实现了一个自定义的ItemList适配器。根据你的需求,你可以修改list_item.xml布局文件和MyListAdapter类,以便更好地展示你的数据。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号