ListView与ArrayAdapter

一、ListView

  1. ListView(列表控件)的表现形式类似于1个垂直方向排列了若干个列表项的线性布局。 常用的使用ListView控件显示的应用场景:联系人列表、通话记录、短信列表等。
  2. ListView的Item:列表项中的条目
  3. ListView的Adapter:适配器

二、ArrayAdapter

使用ArrayAdapter必须确定1个数据类型,该类型表示ListView展现的数据用哪种类型可以表示,例如显示联系人的名称,则该类型可以确定为String/CharSequence。

三、显示ListView的4个要素

  1. ListView控件:在layout布局中添加控件,配置id、宽度、高度属性即可。
  2. 数据源:ListView中需要显示的数据的集合,通常是List集合。
  3. 模板:约定列表项的外观,但是不约定显示的数据,表现为在res\layout\文件夹下的XML文件,当使用ArrayAdapter时,推荐创建的模板文件使用TextView作为根节点。
  4. Adapter:可以使用ArrayAdapter、SimpleAdapter、BaseAdapter。

四、ListView的开发流程

  1. 在布局中添加ListView控件
  2. 在res\layout\ 下创建新的XML文件,用于设计ListView列表项的模板
  3. 在Activity类中,使用List集合,创建数据源
  4. 在Activity类中,声明ListView控件,并初始化
  5. 在Activity类中,声明ArrayAdapter,并创建对象
  6. 在Activity类中,调用ListView对象的setAdapter方法,为ListView配置Adapter

下面是具体实现的代码

1. ListView列表项的模板 contact_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tv_contact"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    android:text="@string/app_name"
    android:textSize="20sp" />
2.activity布局文件 activity_main.xml
<RelativeLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin >

    <ListView
        android:id="@+id/lv_contacts"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true" >
    </ListView>

</RelativeLayout>
3.具体实现代码 MainActivity.java
public class MainActivity extends Activity {
    /**
     * ListView:显示联系人列表的列表控件
     */
    private ListView lvContacts;
    /**
     * adapter:适配器,用于将数据映射到View上的工具
     */
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lvContacts = (ListView) findViewById(R.id.lv_contacts);

        // 数据源
        List<String> contacts = new ArrayList<String> ();

        // 向列表中添加数据
        contacts.add("梅西");
        contacts.add("内马尔");
        contacts.add("苏亚雷斯");
        contacts.add("伊涅斯塔");
        contacts.add("哈维");
        contacts.add("图兰");
        contacts.add("拉基蒂奇");
        contacts.add("罗贝托");
        contacts.add("布拉沃");
        contacts.add("布斯克茨");
        contacts.add("C.罗纳尔多");
        contacts.add("贝尔");
        contacts.add("本泽马");
        contacts.add("阿尔维斯");
        contacts.add("特尔斯特根");
        contacts.add("皮克");
        contacts.add("马斯切拉诺");
        contacts.add("阿尔巴");

        adapter = new ArrayAdapter<String>(
                this, // context: 上下文对象
                R.layout.contact_item, // textViewResourceId: 用于显示数据的模板
                contacts); // List<String> objects: 用于放入列表的数据
        lvContacts.setAdapter(adapter); // 为lvContacts配置adapter
    }
}

效果图:

ListView与ArrayAdapter

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值