ListView,adapter使用总结

本文主要介绍了Android中ListView的使用,强调了Adapter的重要性。总结了ArrayAdapter、SimpleAdapter和BaseAdapter三种类型的Adapter,并通过示例代码展示了它们的用法。在BaseAdapter中,特别提到了getView方法的优化技巧,以提高ListView的性能。最后提到了在Fragment中使用ListView的简便方法。
摘要由CSDN通过智能技术生成

学习android也有一段时间了,老是想要通过总结的形式形成文档保存起来,但是一直都没能实现起来,一是本人挺懒的,有严重的拖延症,而是确实没什么时间来弄,每天回到宿舍已经是九点多了,宿舍人多,洗个澡,洗一下衣服,已经是十一点多了,不想明天的状态又是顶着两个黑眼圈来学习。所以,唉,还是自己的问题!
写总结,我越来越觉的很有必要,俗话说好记性不如烂笔头,你记性再好都会忘光光的,所以记录总结是最好的方式了。
好的,今天要总计的是ListView,就是一个列表视图,不要小看这个组件,很多的主流的app都用到了ListView,所先,这个ListView要怎么用呢?
ListView可以看成是一个容器,他所要存放的就是数据,然而,数据又不能直接存放在里面,必须通过一个中间件——适配器(Adapter),所以我们的重点就是了解并用好这个适配器。
适配器有三种,分别是数组适配器(ArrayAdapter),简单适配器(SimpleAdapter),通用适配器(BaseAdapter)。
数组设配器:
这个是三者中最简单的,我们通过代码来学习:
public class ListViewByEntity extends ActionBarActivity {

private ListView lvObj;

private String citys[]=new String[]{
        "北京",
        "上海",
        "广州",
        "成都",
        "安徽"
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_view_by_entity);

    lvObj=(ListView)findViewById(R.id.listView);
  ArrayAdapter<String> dataAdpater=new ArrayAdapter<String>(
            this,
            R.layout.item01,
            R.id.city,citys);*/

    ArrayAdapter<String> dataAdpater=new ArrayAdapter<String>(
            this,
            android.R.layout.simple_list_item_1,citys);

    //将适配器组件对象加载到ListView组件
Adapter的一种写法 package com.xxkjx.jiusanqi; import java.util.List; 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; public class NewsListViewAdapter extends BaseAdapter { List<News> list; LayoutInflater inflater; Context context; public NewsListViewAdapter(List<News> list, Context context) { super(); this.list = list; this.context = context; inflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return list.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ViewHolder viewHolder = null; if (convertView == null) { convertView = inflater.inflate(R.layout.activity_news_list_item, null); viewHolder = new ViewHolder(); viewHolder.title = (TextView) convertView .findViewById(R.id.tv_news_title); viewHolder.publish = (TextView) convertView .findViewById(R.id.tv_news_publish); viewHolder.brief = (TextView) convertView .findViewById(R.id.tv_news_brief); viewHolder.image = (ImageView) convertView .findViewById(R.id.img_news); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.title.setText(list.get(position).getTitle()); viewHolder.publish.setText(list.get(position).getPubblish()); viewHolder.brief.setText(list.get(position).getBrief()); viewHolder.image.setImageResource(list.get(position).getImg()); return convertView; } class ViewHolder { TextView title; TextView publish; TextView brief; ImageView image; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值