标签:adapter adapterview 适配器 baseadapter listview
Adapter--适配器,相信大家在开发中少不了用这个类或者它的子类。本人也在很多地方都用到,所以在这里总结一下。
Adapter扮演了一个桥梁的角色,把AdapterView和数据源板绑定一起。AdapterView是什么呢?它其实就是一个view,只不过是一种需要在代码中动态设置内容的view,而不是像其他的button,imageview等组件一样,可以在xml文件中指定属性和显示的数据。
下面看一下Adapter和AdapterView的类图:
我们一般使用的AdapterView的子类有:ListView、GridView、Gallery、Spinner等,使用最多的Adapter(适配器)有ArrayAdapter、SimpleAdapter、SimpleCursorAdapter、BaseAdapter等。
使用adapter一般需要三步:
1. 在布局文件中设置好你所使用的AdapterView的相关属性。
2. 在代码中使用适配器(adapter及其子类)对AdapterView进行适配。此时就可以正常显示了。
3. 添加监听器,对AdapterView的一些触发事件进行处理。
下面我就这四个适配器进行详细的解释一下。
这是一种最简单的Adapter,通常将数组或list集合包装成多个列表项。我们就以ListView为例。
先看布局文件:
<!--
android:divider="#f00" 设置分割线的颜色
android:dividerHeight="2dp" 设置分割线的高度
android:stackFromBottom="true" 设置列表显示的时候显示到最下面的列表
android:scrollbars="none" 隐藏滚动条
android:fadeScrollbars="false" 为false时滚动条一直显示,为true时自动显示隐藏
-->
<ListView
android:id="@+id/array_adapter_lv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#1d953f"
android:divider="#f00"
android:listSelector="#E9967A"
android:dividerHeight="2dp"
android:headerDividersEnabled="false"
android:transcriptMode="alwaysScroll" >
</ListView>
java代码部分:
private void initListView1() {
listView1 = (ListView) findViewById(R.id.array_adapter_lv1);
String[] arr1 = new String[] { "item1", "item2", "item3" };
ArrayAdapter<String> adapter1 = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, arr1);
listView1.setAdapter(adapter1);
}
ArrayAdapter的构造函数有很多,我用的是三个参数的那个,下面来解释一下参数的含义。
其中,第二个参数比较重要,可以使用系统提供的布局文件,也可以自己定义(必须以TextView为根标签),如下:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12pt"
android:textColor="#8DB6CD"
android:text="TextView" />
然后在代码中,指定自己定义的xml文件就可以了。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.array_adapter_item, getResources().getStringArray(R.array.array1));
标签:adapter adapterview 适配器 baseadapter listview
原文地址:http://blog.csdn.net/crazy1235/article/details/41775733