(1)、定义一个数组来存放ListView中item的内容。
(例如:
private static final String[] strs = { "first", "second", "third", "fourth", "fifth" };
(2)、通过实现ArrayAdapter的构造函数来创建一个ArrayAdapter的对象。
(例如:
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, strs);
,其中第二个参数可以自定义一个layout,但是这个layout必须要有TextView控件。);
(3)、通过ListViewsetAdapter()方法绑定ArrayAdapter。
(例如:
listView.setAdapter(adapter))
另外:
(1)通过指定android.R.layout.simple_list_item_checked这个资源,实现带选择框的ListView。
需要用setChoiceMode()方法设定选择为多选还是单选,否则将不能实现选择效果。
(例如:
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked, strs)); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
(2)通过指定android.R.layout.simple_list_item_multiple_choice这个资源实现带CheckBox的ListView。
(例如:
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,strs)); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
(3)通过指定android.R.layout.simple_list_item_single_choice这个资源实现带RadioButton的ListView。
(例如:
listView.setAdapter(newArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice,strs)); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
ListView绑定一个点击监听器:
listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2 ,long arg3) { } });
2、ListView使用SimpleAdapter
(1)根据需要定义ListView每行所实现的布局。
(2)定义一个HashMap构成的列表,将数据以键值对的方式存放在里面。
(3)构造SimpleAdapter对象。
(4)将LsitView绑定到SimpleAdapter上。
3、 ListView使用BaseAdapter与ListView的优化
使用BaseAdapter必须写一个类继承它,同时BaseAdapter是一个抽象类,继承它必须实现它的方法。其中最重要的是getView()方法。
getCount();
getItem(int position);
getItemId(int position) ;
getView(int position, View convertView, ViewGroup parent);
当系统开始绘制ListView的时候,首先调用getCount()方法。得到它的返回值,即ListView的长度。然后系统调用getView()方法,根据这个长度逐一绘制ListView的每一行。getItem()和getItemId()是在需要处理和取得Adapter中的数据时调用。
当convertView为空时,用setTag()方法为每个View绑定一个存放控件的ViewHolder对象。
当convertView不为空,重复利用已经创建的view的时候,使用getTag()方法获取绑定的ViewHolder对象,这样就避免了findViewById对控件的层层查询,而是快速定位到控件。
public class WeatherActivityAdapter extends BaseAdapter { private Context context; private ArrayList<WeatherBean> list; public WeatherActivityAdapter(Context context, ArrayList<WeatherBean> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh = null; if (convertView == null) { vh = new ViewHolder(); convertView = LayoutInflater.from(context).inflate(R.layout.weather_item_layout, parent, false); vh.tv_date = (TextView) convertView.findViewById(R.id.date_textView); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } WeatherBean bean=list.get(position); vh.tv_date.setText(bean.date); return convertView; } } class ViewHolder { TextView tv_date; }
相关推荐
Android listview与adapter操作和用法
在 Android中 如果使用到了 ListView 或GridView 一定要 给其 添加 适配器Adapter 但 每次 写对应的 适配器时,其中很多方法都是 重复的 , 所以我这个demo 将其封装了起来,使用的时候,只需继承 我封装的类,然后...
ListView的简单介绍与使用 GridView的简单介绍与使用 自定义BaseAdapter BaseAdapter的三种使用方式 ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字 SimpleAdapter:同样具有良好扩展性的一个...
主要介绍了Android ListView优化方法详解的相关资料,这里举例说明该如何对ListView 进行优化,具有一定的参考价值,需要的朋友可以参考下
ListView中使用CheckBox的方法,需要注意的是CheckBox优先级比listview要高,所以要取消焦点,然后可以通过adapter将两者关联起来,有更好的方法希望大家告诉我!!#11
简单的listview自定义适配器的使用方法,注释很清晰,也有对应的博文介绍
Android之Adapter用法总结 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的 View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、...
4、对BaseAdapter的使用 5、自定义Adapter 6、接口的回调 要实现下面的效果–当拖动ListView到底部的时候,显示一个ProgressBar和一个”正在加载…”的TextView。并且过两秒钟后,在下面加载出新的数据。项目的目录...
ListView也是Android中比较难以使用的控件,这节内容就将详细解读ListView的用法。 一个ListView通常有两个职责。 (1)将数据填充到布局。 (2)处理用户的选择点击等操作。 第一点很好理解,ListView就是实现...
Android Data Binding Adapter for ListView and RecyclerView..zip,使用新的android数据绑定框架将集合绑定到listviews和recyclerviews的简单方法
PS:listview中有一些简单使用的适配器,如:SimpleAdapter:构造方法SimpleAdapter(Context context,List<Map> data,reString [] from,int [] to),但这种适配器过于单调,往往不能达到用户想要的效果,想要随心所欲...
以后每写一个ListView,就这么做:直接导入ViewHolder.java和ListViewAdapter,然后写一个自定义adapter继承自ListViewAdapter就行了。 ListView中动态显示和隐藏Header&Footer 如果需要动态的显示和隐藏footer的...
本文实例讲述了Android使用ListView批量删除item的方法。分享给大家供大家参考,具体如下: 利用CheckBox选中一个或多个item,最后批量删除它们。 程序运行效果图如下: 下面开始上码: (代码已更正,已解决滚动时...
Android 程序技术 ...BaseAdapter即基本的适配器,使用BaseAdapter时需要实现四个方法。 public abstract int getCount() //得到Item条目的总数 public abstract Object getItem(int position) //根据posi
Android流式布局,支持点击、单选、多选等,适合用于产品标签等,用法采用Adapter模式,和ListView、GridView用法一样!2016/6/26号新添加初始化标签功能,使用非常简单,只要你的Adapter实现OnInitSelectedPosition...
Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法: 首先我们给出一个没有任何优化的Listview的Adapter类,我们这里都继承自BaseAdapter,...
ListView,就如其名,是用来显示...3.在Activity的java文件中使用findviewbyid找到ListView实例,为其设置Adapter 4.实现ListView的item项点击事件,直接使用Listview定义的setitemonClick方法就行了 这里最为重要的一
对于一个界面,如果需要设计GridView和ListView两种方式来显示一个列表可以共用一个Adapter和一个布局来实现,这样既可以避免冗余的代码,也使整个处理过程变得更加简单。 4. 通过控制isGridView标签来控制页面的...
1. 使用ListView的`addHeaderView()`方法添加固定View作为列表的头部。 2. 通过自定义Adapter处理数据绑定,确保固定View与列表项正确显示。 3. 利用监听器捕获滚动事件,根据需要调整固定View的显示状态。 **源码...
对于DataBinding一些比较基础的使用,在这里就不在记录了,毕竟现在Google一下,出来很多的教程,而且,android developer官网中,也已经对其基本使用方法做了详细介绍,有英语基础的童鞋,还是去看比较官方的文章。...