在做安卓开发的时候很多时候都要用到ListView来显示数据,ListView使用的也很广泛,用到了ListView就会使用到adapter适配器,关键就在于adapter,刚开始学安卓的时候就根本不知道怎么根据自己的需要来选择对应的adapter,今天自己也就来总结一下,方便查看。

在ListView中使用最多的adapter是ArrayAdapter、SimpleAdapter、BaseAdapter。ArrayAdapter从名称上来看就知道是用来显示数组的,SimpleAdapter是用来显示比较复杂的数据,我一般用来显示图片+标题。BaseAdapter可以实现复杂的列表布局,由于BaseAdapter是一个抽象类,使用该类需要自己写一个适配器继承该类,正是由于继承了该类,需要我们重写一些方法,让我们可以在代码里控制列表的样式,更加灵活。

一、ArrayAdapter显示简单的数据

布局文件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"tools:context=".MainActivity" ><ListView android:id="@+id/listview"android:layout_width="match_parent"android:layout_height="match_parent"/></RelativeLayout>

很简单的一个布局文件,只是一个ListView。

MainActivity.java

package com.example.listview01;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;public class MainActivity extends Activity {private ListView listview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listview = (ListView) findViewById(R.id.listview);String [] list = new String []{"姓名:张三","性别:男","地址:重庆市沙坪坝区沙正街174号"};ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list);listview.setAdapter(adapter);}
}

ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, list)

第一个参数就不说了,第二个参数是Android提供的一个布局文件,第三个参数是要显示的数据。

在Android为ListView指定的外观形式通常有一下几个。

simple_list_item_1:每个列表都是一个普通的文本。

simple_list_item_2:每个列表都是一个普通的文本(字体稍大)。

simple_list_item_checked:每个列表都有一个一选中的列表项。

simple_list_item_multiple_choice:每个列表都是带复选框的文本。

simple_list_item_multiple_choice:每个列表都是带复选框的文本。

测试结果如下:

但是这个看起来还是很单调,要是想要ListView每个item的自定义的话,系统提供的simple_list_item_1就不能满足要求了,在这里我们就要自己重新写一个布局文件了,由上面的描述(每个列表都是一个普通的文本)可知,我们也需要一个只有一个不同文本的布局文件,然后进行自定义。

item.xml

<TextViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#00ff00"android:textSize="30sp"android:background="#000000"/>

这里注意:上面写的很明白了,是只包含一个文本的布局文件。作者在第一次使用自定义布局的时候是在一个LinearLayout中添加了一个TextView,导致一直报错 ,后来研究了一下才知道是只能有一个文本布局。

在这个自定义的TextView中定义了一个黑色的背景,字体放大,设置了字体颜色,然后在程序的第20行代码改成

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,item, list);

下面看效果图:

有了自定义的item就可以根据自己的需求定义了~~

Android ListView与Arrayadapter之间的搭配使用相关推荐

  1. 42.Android之ListView中ArrayAdapter简单学习

    今天学习下Android中ListView关于ArrayAdapter数据绑定, 废话少说直接上代码. 改下布局文件: 1 <?xml version="1.0" encod ...

  2. Android杂谈--ListView之ArrayAdapter的使用

    Android杂谈--ListView之ArrayAdapter的使用 ArrayAdapter 总是感觉写自己的博客才更能够学到东西,网上尽管有很多好的资料,但是参差不齐,需要浪费大量时间才能够找到 ...

  3. Android listView item之间调整间距,listView去掉下滑线

    1. 调整item之间的间距 最近做列表需求的时候,发现需要修改listview的item之间的间距.在自定义的item中,使用padding就可以修改view的间距.具体代码如下: <?xml ...

  4. Android Listview ArrayAdapter示例

    ListView 的使用大致上可以分为四个步骤:添加 ListView 组件.存储数据.设置列表项item的布局文件.加载数据/资源进行显示.添加监听. 这篇文章主要讲一下最简单的ArrayAdapt ...

  5. android 多个数组合并,Android之ListView和ArrayAdapter的组合使用

    ListView在android中的列表显示.主要是用于数据的显示,通常是从网络上解析出来的数据,显示到ListView上.可以显示很多行,每一行习惯上称之为item.而要控制ListView总共要显 ...

  6. android listview 不显示_ListView详细介绍与使用

    image 前言介绍: 关于 ListView 我们大家都应该是非常的熟悉了,在 Android 开发中是经常用到的,今天就再来回顾一下,ListView 的使用方法,和一些需要优化注意的地方,还有日 ...

  7. Android ListView异步加载图片乱序问题,原因分析及解决方案

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...

  8. Android ListView常用用法(二)

    来自:51CTO论坛 原帖:http://mobile.51cto.com/android-254823.htm Android开发:实现带图片和checkbox的listview 项目要用到一个li ...

  9. Android ListView示例教程

    We will learn how to create a simple Android ListView and launch a new activity on selecting a singl ...

最新文章

  1. docker 推送到本地仓库_Docker_学习笔记系列之仓库
  2. Django create和save方法
  3. 树莓派利用Django搭建聊天网页服务器 —— 准备篇
  4. android rtsp协议转http协议_网络协议HTTP 协议(一)
  5. python绘图时的分解问题的步骤-零基础学python-15.2 分解函数
  6. 生成器作为(快速失败)状态机
  7. TortoiseGit + GitHub 快速上手指南
  8. 芝麻信用综合评估未通过,请选择商户支持的其他方式使用服务
  9. 小动画制作 图片盒子配合定时器 winform 114869633
  10. 一个貌似win窗口的载入框
  11. python3socket非阻塞在linux里无效_Linux下socket设置为非阻塞方式和fcntl系统调用
  12. linux上安装osg_Linux下编译OSG全过程
  13. Spring 之autowired
  14. 《A Sub-Pixel Edge Detector: an Implementation of the Canny/Devernay Algorithm》
  15. wampserver php 目录,小常识-WAMPServer自定义根目录
  16. 每周学一点Egret(17)default.thm.json 文件编译小坑
  17. 禁用Windows Defender Antivirus Service
  18. linux中的module
  19. Charles ios无法下载证书- chls.pro/ssl一直加载治标办法
  20. 以IM为例看58同城典型技术架构演变

热门文章

  1. VS编译提示错误“....Consider using strcat_s instead.To disable deprecation, use _CRT_SECURE_NO_WARNINGS.”
  2. Tiniux 3.0 / Memory.c / OSMemMalloc 和 OSMemCalloc
  3. mysql1215_MySQL全面瓦解15:视图
  4. 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系
  5. VS Code阅读Android源码
  6. pip install升级包
  7. oracle查询重复数据出现次数
  8. 国行iphone第一次安装APP网络状况
  9. zabbix客户端一键安装脚本(主动模式监控)
  10. Check for Palindromes(算法)