Day6、ListView和适配器Adapter一

来源:互联网 发布:广东省委党校 知乎 编辑:程序博客网 时间:2024/05/29 10:54

不BB几句总觉得憋得慌,时间很快,清楚的记得今天是多少号了,马上这个月就结束了,确实时间是无价的,不可逆的,自己能做的就是,唯有珍惜时间和咬牙坚持,还是那句老话,累并快乐,痛并坚持。

ListView简述,其实我们日常生活中每天接触ListView,它是应用最广泛的数据显示视图控件,扣扣好友列表,扣扣空间说说…以不同的姿势(xxx_item.xml)都躺在ListView(容器)中。

一、ListView常见属性

1.android:divider=”#f00” 设置分割线颜色

2.android:dividerHeight=”10px” 设置分割线的高度,即粗细

3.android:scrollbars=”none/horizontal/vertical” 设置滚动条出现的形式

4.android:fadeScrollbars=”false” 设置是否自动隐藏,默认是自动隐藏的,若设置false的话就不会隐藏,一直出现在屏幕上

5.android:entries=”@array/names” 设置一固定数组,引用values先自定义的.xml文件

1.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"    tools:context="com.oldtogether.adapterdemo.MainActivity" >    <ListView         android:id="@+id/lv_test"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:entries="@array/entryTest"/></RelativeLayout>

2.arrays.xml代码

<?xml version="1.0" encoding="utf-8"?><resources>   <string-array name="entryTest" >        <item>小学僧</item>        <item>托儿索</item>        <item>儿童劫</item>        <item>红领烬</item>        <item>鱼尾文</item>        <item>菊花信</item>   </string-array></resources>

3.MainActivity.java代码

package com.oldtogether.adapterdemo;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //直接将activity_main.xml加载在此界面即可        setContentView(R.layout.activity_main);    }}

4.运行结果
这里写图片描述

二、从上面代码可以看出来,渲染过程很简单,但是这样会将数据写死,只有简单自定义的数组,然而面对庞大的信息,无法满足用户的需求。于是出现了适配器,将ListView和适配器一起搭配开发才够味。那么问题来了,什么是Adapter呢???Adapter是用来帮助填充数据的中间桥梁,是UI界面和数据之间的控制器,是一个中间转换站,是软件开发工程师在开发过程中经验总结和智慧的结晶。

copy注解,具体可以参考Adapter官方文档

1.BaseAdapter:抽象类,实际开发中会继承次类并且重写相关方法,应用最多的Adapter。
2.ArrayAdapter:支持泛型操作,最简单的一个Adapter,只能展现一行文字。
3.SimpleAdapter:同样具有良好扩展性的一个Adapter,可以自定义多种效果。
4.SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,不过有点过时, 不推荐使用。

三、使用ArrayAdapter实现文字列表

1.listview.xml代码

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ListView         android:id="@+id/lv_main"        android:layout_width="match_parent"        android:layout_height="wrap_content"/></LinearLayout>

2.MainActivity.java代码

package com.oldtogether.adapterdemo;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity1 extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.listview);        //1、获取ListView对象        ListView lv=(ListView) findViewById(R.id.lv_main);        //2、数据源        String [] data={"小学僧","托儿索","儿童劫","红领烬","鱼尾雯","菊花信","喜之郎"};        //3、设置适配器        ArrayAdapter<String> adapter =new ArrayAdapter<String>(                this, //context上下文                android.R.layout.simple_list_item_1, //android系统自带的行布局样式                data);        //4、关联适配器        lv.setAdapter(adapter);    }}

3.运行结果
这里写图片描述

四、心得总结:从上面的代码中可以看出

1.xml文件提供了一个容器

2.java文件中,通过反射的方式获取一个ListView的对象;

3.java文件中,然后获取数据源,这里当然是自定义了一个简单的数组,在这里还可以编写相应逻辑代码,通过网络获取更多的数据,提供了编程思路的框架。

4.java文件中,设置适配器,将数据以特定的形式(这里是系统提供的行布局,android.R.layout.xxx)呈现在页面上,还有自定义Adapter,尽情的发挥聪明才智,以更牛b的姿势出现,提供了编程思路框架。

5.java文件中,最后通过ListView对象的setAdapter方法将adapter关联到容器上,使其奏效。

0 0
原创粉丝点击