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
- Day6、ListView和适配器Adapter一
- ListView和Adapter(适配器)
- Adapter适配器和ListView
- ListView,GridView 和 适配器 Adapter
- 列表和适配器(ListView和Adapter)
- android listview和适配器adapter的使用
- 列表控件ListView和适配器Adapter
- Day7、ListView和适配器Adapter二
- Day8、ListView和适配器Adapter三
- ListView 适配器(Adapter)
- listview adapter 常用适配器
- ListView,GridView和适配器Adapter不得不说的秘密
- Android低阶【chapter-5】ListView和自定义适配器(Adapter)
- ListView和Adapter—数据适配器使用详情
- ListView和Adapter数据适配器的简单介绍
- Android UI基础之ListView 和适配器Adapter
- ListView 适配器(Adapter)优化
- ListView的自定义适配器Adapter
- android指纹识别开发
- 【Android】使用ConnectivityManager与NetworkInfo实现判断当前网络环境是否可用
- ***[Lintcode]Maximum Subarray Difference 最大子数组差
- 107. Binary Tree Level Order Traversal II
- 点直播流媒体传输协议之 —— HLS
- Day6、ListView和适配器Adapter一
- windows操作技巧(2)
- httprequest跳转和httpresponse跳转的区别
- [LeetCode]Reorder List
- Laravel Model数据操作
- 高效管理文件之压缩及解压缩 .bz2 文件
- js对象数组遍历
- 如何查看 Apache 模块是否正常
- 深度学习动手实践:用 TensorFlow 打造“会看”的机器人