Day6、ListView和适配器Adapter一

不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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值