ArrayAdapter
ArrayAdapter是Android中自己定义好的一种适配器,将数据添加到自己定义的View中。他自己定义的View中只有一个TextView。我们可以拿他的一个示例来看:
android.R.layout.simple_expandable_list_item_1, array:
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:paddingStart="?android:attr/expandableListPreferredItemPaddingLeft" android:textAppearance="?android:attr/textAppearanceListItem" android:gravity="center_vertical" /> |
这是Android自己定义的一个View,我们需要将数据添加到这个View中,然后再将这个View添加到ListView中。
ArrayAdapter是数组形式的数据添加到View中,下面我们,恩来看具体的添加步骤:
- 定义要添加的数据,数据是数组形式的。
这里我们定义成String数组,用来存储姓名。
1 |
private String[] array = {"张三", "李四", "王五", "赵六","马奇"}; |
- 创建ArrayAdapter对象,将数据添加到View中。
1 |
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1, array); |
在创建ArrayAdapter对象的过程中就已经将数据添加到View中。我们来分析一下构造器,看一下到底他是如何添加的……首先看一下他的构造器:
我们这里采用的是他的第三个构造器:
第一个参数Context context是指创建ArrayAdapter对象的Activity,这里我们直接传this即可,代表本类Activity的对象;
第二个参数int resource是指布局文件,要将数组以什么羊形式的View显示在ListView中;
第三个参数T[] objects是指显示的数据。
- 将View添加到ListView 中,通过调用方法setAdapter(Adapter)完成.
1 |
mListViewArray.setAdapter(adapter); |
ArrayAdapter的使用就是基于这三步的,其实总体来说,所有的Adapter适配器都是基于这三步的。下面我把我Activity中的代码完整的贴出来:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class ListActivity extends Activity { private ListView mListViewArray; private String[] array = {"张三", "李四", "王五", "赵六","马奇"}; private List<HashMap<String, String >> mData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); mListViewArray = (ListView) findViewById(R.id.listview_array); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, array); mListViewArray.setAdapter(adapter); } } |
ListView布局文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.lishuang.administrator.ui0824.ListActivity"> <ListView android:id="@+id/listview_array" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView> </LinearLayout> |
android.R.layout.simple_expandable_list_item_1, array:
1 2 3 4 5 6 7 8 9 |
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:paddingStart="?android:attr/expandableListPreferredItemPaddingLeft" android:textAppearance="?android:attr/textAppearanceListItem" android:gravity="center_vertical" /> |