关于Android中适配器的使用简介
2013-12-28 16:20
323 查看
关于适配器的解释,简单的讲就是把要显示给用户的数据信息通过适当的模式动态的填充各种ListView,也可以看作是界面数据绑定的一种理解,它所操纵的数据一般都是一些比较复杂的数据,界面是有一定规律的View。由于一些特殊的需要,往往需要自己定义适配器来完成显示功能,下面就以较为常用的适配器简介其用法:
1、首先要定义一个用于显示ListView的布局文件main.xml,如下
2、再定义一个ListView中要显示的内容的布局文件item.xml,如下
3、自定义一个适配器,使数据充填到对应的View中,该适配器继承自abstract类BaseAdapter
1、首先要定义一个用于显示ListView的布局文件main.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:orientation="vertical" > <ListView android:id="@+id/person_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false" android:scrollbars="vertical" /> </LinearLayout>
2、再定义一个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:orientation="horizontal" > <TextView android:id="@+id/user_name" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/user_age" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
3、自定义一个适配器,使数据充填到对应的View中,该适配器继承自abstract类BaseAdapter
package com.ui.adapter.demo; 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.TextView; public class PersonAdapter extends BaseAdapter { // 上下文对象 private Context context; // 要绑定的数据 private List<Person> persons; // 自定义的内部类 private ViewHolder holder; // 布局文件加载器 private LayoutInflater inflater; public PersonAdapter(Context context, List<Person> persons) { super(); this.context = context; this.persons = persons; } /*取得绑定的数据的个数*/ @Override public int getCount() { return persons.size(); } /*取得指定位置的对象*/ @Override public Object getItem(int position) { return persons.get(position); } /*取得绑定数据的索引*/ @Override public long getItemId(int position) { return position; } /*取得指定位置的View*/ @Override public View getView(int position, View convertView, ViewGroup parent) { holder = null; // 获取加载器对象 inflater = LayoutInflater.from(context); if (null == convertView) { // 加载布局文件 convertView = inflater.inflate(R.layout.person, null); holder = new ViewHolder(); // 获取布局文件中的各控件 holder.nameText = (TextView) convertView .findViewById(R.id.user_name); holder.ageText = (TextView) convertView .findViewById(R.id.user_age); convertView.setTag(holder); } else { convertView.getTag(); } // 给控件绑定数据 holder.nameText.setText(persons.get(position).getName()); holder.ageText.setText(persons.get(position).getAge()); return convertView; } /** * 自定义内部类,类似于缓存的作用 */ private class ViewHolder { TextView nameText; TextView ageText; } }
相关文章推荐
- 关于Android中适配器的使用简介
- 关于Android中适配器的使用简介
- Android中关于PopupWindow的使用简介
- Android中关于自定义Dialog的使用简介
- Android中关于SharedPreferences的使用简介
- Android中关于Options Menu的使用简介
- Android中关于TabHost的使用简介
- Android中关于Volley的使用(九)认识HurlStack(HttpClientStack)
- 关于xmlns:tools和android:onClick使用
- Android关于Glide的使用(高斯模糊、加载监听、圆角图片)
- Android actionbar 使用简介
- 关于新浪微博sdk及com_weibo_android_example的使用
- android--关于ViewPropertyAnimator中Rotation/X/Y方法的使用
- 关于向Android项目中的drawable下添加图片却无法使用的问题
- Android-Spinner的使用以及两种适配器
- Android Spinner适配器放入list配置的使用
- 关于org.xmlrpc.android使用出现的问题
- 关于Android开发中使用System.exit(0)的问题(如写返回键响应时用到双击退出函数的时候)
- Android_02_关于SharePreferences的使用
- 关于安卓如何使用android-async-http开源框架