ListView的使用(未优化)

2016/1/10 15:40:32

ListView的使用(未优化)


一.使用ArrayAdapter实现简单的数据展示

String[] data = {"北京","上海","深圳","天津","广州","武汉","合肥","哈尔滨","内蒙古","成都","重庆","长沙","拉萨"};

listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,data));

其中 android.R.layout.simple_list_item_1 为系统内置的布局文件,可用于简单的显示一段文本。当然我们也可以定义自己的布局并加载进去。

二.使用BaseAdapter实现图文并茂的数据展示

准备好布局,数据等准备工作,数据可以单独建立一个类,属性有文字以及图片,添加get和set方法,在List集合中保存它们。由于代码简单,就不贴出来了。主要看继承自BaseAdapter的MyAdapter中的代码:

class MyAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return mlist.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

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

            MyItem myItem = mlist.get(position);

            LayoutInflater layoutInflater = LayoutInflater.from(SecondActivity.this);
            View v = layoutInflater.inflate(R.layout.second_layout_listview, null);
            ImageView iv  = (ImageView) v.findViewById(R.id.iv);
            TextView tv = (TextView) v.findViewById(R.id.tv);

            iv.setImageResource(myItem.getImg_id());
            tv.setText(myItem.getDescribe());
            return v;
        }
    }        

此时的ListView每次滚动都会创建出新的View,效率很低,针对这个缺点,在下一篇中实现ListView的两种优化方案。

为ListView添加点击事件

lv_second.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                MyItem myItem = mlist.get(position);
                Toast.makeText(SecondActivity.this,myItem.getDescribe(),Toast.LENGTH_LONG).show();
            }
        });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值