欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android 开发之 ListView 与Adapter 应用实践

程序员文章站 2022-03-20 15:11:14
在开发android中,ListView 的应用显得非常频繁,只要需要显示列表展示的应用,可以说是必不可少,下面是记录开发中应用到ListView与Adapter 使用的实例: ListView 所在页面中的布局(listview_item.xml): Adapter 展示的布局 (item.xml ......

在开发android中,listview 的应用显得非常频繁,只要需要显示列表展示的应用,可以说是必不可少,下面是记录开发中应用到listview与adapter 使用的实例:

listview 所在页面中的布局(listview_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="match_parent"
    android:focusable="true"
    android:focusableintouchmode="true">
     <listview
             android:id="@+id/listview_item"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:divider="@null"
             android:scrollbars="none">
</linearlayout>

 adapter 展示的布局 (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="match_parent">

    <linearlayout
        android:id="@+id/layout_sub_item_content"
        android:layout_width="match_parent"
        android:layout_height="50dp">

        <imageview
            android:id="@+id/img_choose"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="10dp"
            android:src="@drawable/xuanzhong_icon"
            android:layout_gravity="center_vertical"
            />
        <textview
            android:id="@+id/textview_name"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="4"
            android:gravity="center_vertical"
            android:fontfamily="noto-sans-hans-regular"
            android:textsize="14sp"
            android:textcolor="#333333"
            android:text="项目名称"
            android:paddingleft="5dp"/>

        <textview
            android:id="@+id/textview_price"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:fontfamily="noto-sans-hans-regular"
            android:textsize="14sp"
            android:textcolor="#333333"
            android:text="454.0"
            android:gravity="center"/>

        <textview
            android:id="@+id/textview_vip"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:fontfamily="noto-sans-hans-regular"
            android:textsize="14sp"
            android:text="非会员价"
            android:gravity="center"
            android:textcolor="@color/red"/>


    </linearlayout>
</linearlayout>

  activity_item.java:

/**
 * 项目列表适配器
 */
private mybaseadapt iteminfoadapt;

@injectview(r.id.listview_item)
listview listview_item;

private class viewholder {
    textview textview_name;
    textview textview_price;
    textview textview_vip;
    imageview img_choose;
}
/**
*项目数据list
*/
private list<iteminfo> listiteminfo=new arraylist<>();

/**
 * 初始化列表
 */
private void inititemlistview() {
iteminfoadapt = new mybaseadapt<iteminfo>(this, r.layout.item, listiteminfo) {
            @override
            public view myadapt(int position, view convertview, view mview, list<iteminfo> mentitylist) {
                viewholder holder = null;
                if (convertview == null) {
                    convertview = mview;
                    holder = new viewholder();
                    holder.textview_name = (textview) convertview.findviewbyid(r.id.textview_name);
                    holder.textview_price = (textview) convertview.findviewbyid(r.id.textview_price);
                    holder.textview_vip = (textview) convertview.findviewbyid(r.id.textview_vip);
                    holder.img_choose=(imageview) convertview.findviewbyid(r.id.img_choose);
                    convertview.settag(holder);
                } else {
                    holder = (viewholder) convertview.gettag();
                }
                iteminfo iteminfo = mentitylist.get(position);
                holder.textview_name.settext(iteminfo.getname());
                holder.textview_price.settext(pricemanager.getprice(iteminfo.getpricestr(), iteminfo.getpricetypestr()).get(common.price_type_origin));
                holder.textview_vip.settext(pricemanager.getprice(iteminfo.getpricestr(), iteminfo.getpricetypestr()).get(common.price_type_pioneer));
return convertview; } }; listview_item.setadapter(iteminfoadapt); }