ListView优化总结(一)--Android

在安卓项目中会很频繁地用到ListView,正好也看到过一些文章和书中关于ListView的优化和使用,特别进行一下整理和总结,希望进行分享和交流。

1.处理空列表

对于如何处理空列表,在某本书上看到了比较简单的处理方式,代码如下

xml部分内容

<FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true">


        <ListView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/listView"
             />

        <ImageView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/imageView"
            android:src="@color/button_material_light" />  
    </FrameLayout>

代码部分

 ListView mListView=(ListView)findViewById(R.id.listView);
 mListView.setEmptyView(findViewById(R.id.imageView));

2.通过ViewHolder优化适配器


class listAdapter extends BaseAdapter{


        static class ViewHolder{   // 自定义ViewHolder  可以根据自己的列表item 定制                      

       // ViewHolder是一个静态类,可以用于保存每行的视图以避免每次调用getView()时都会调用findViewById()

            public ImageView imageView;
            public TextView text;
        }


        private LayoutInflater mInflater;
        Context context;


        public listAdapter(Context context){
            mInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            this.context=context;
        }


        @Override
        public int getCount() {
            return 0;
        }


        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }






        @Override
        public long getItemId(int id) {
            // TODO Auto-generated method stub
            return id;
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ViewHolder viewHolder;
            if (convertView==null){
                convertView=mInflater.inflate(R.layout.mylistitem,parent,false);   //mylistitem 为自定义的item的xml配置文档
                viewHolder=new ViewHolder();


                viewHolder.imageView=(ImageView)convertView.findViewById(R.id.item_image);
                viewHolder.text=(TextView)convertView.findViewById(R.id.item_text);


                convertView.setTag(viewHolder);




            }else {
                viewHolder=(ViewHolder)convertView.getTag();
            }
//这里可以通过获取position参数加载相应的数据和填充视图

            return convertView;
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值