Android UI 设计:ListView控件和ArrayAdapter适配器(二)

ArrayAdapter


ArrayAdapter是Android中自己定义好的一种适配器,将数据添加到自己定义的View中。他自己定义的View中只有一个TextView。我们可以拿他的一个示例来看:


android.R.layout.simple_expandable_list_item_1, array:


<?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数组,用来存储姓名。


private String[] array = {"张三", "李四", "王五", "赵六","马奇"};


  • 创建ArrayAdapter对象,将数据添加到View中。


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)完成.


mListViewArray.setAdapter(adapter);


ArrayAdapter的使用就是基于这三步的,其实总体来说,所有的Adapter适配器都是基于这三步的。下面我把我Activity中的代码完整的贴出来:


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布局文件:


<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:


<?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"

/>


结果:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值