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

本文详细介绍了Android中ArrayAdapter的作用及使用方法,包括如何将数据数组以特定布局形式添加到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"
/>

结果:
这里写图片描述
  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小_爽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值