Android常见控件之SimpleAdapter和List

一、SimpleAdapter

SimpleAdapter是一个简单的适配器,可以将静态数据映射到XML文件中定义 好的视图。你可以指定数据支持的列表如ArrayList组成的Map。在ArrayList中 的每个条目对应List中的一行。Maps包含每行数据。你可以指定一个定义了被用 于显示行的视图XML文件,通过关键字映射到指定的视图。

构造函数

public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

参数

context 关联SimpleAdapter运行着的视图的上下文。

data 一个Map的列表。在列表中的每个条目对应列表中的一行,应该包含所 有在from中指定的条目

resource 一个定义列表项目的视图布局的资源唯一标识。布局文件将至少应 包含哪些在to中定义了的名称。

from 一个将被添加到Map上关联每一个项目的列名称的列表

to 应该在参数from显示列的视图。这些应该全是TextView。在列表中最初的 N视图是从参数from中最初的N列获取的值。

一个SimlpleAdapter是这样工作的。假设将SimpleAdapter用于ListView。那 么ListView的每一个列表项就是 resource参数值指定的布局。而data参数就是 要加载到ListView中的数据。我们先看每一个列表项,假设列表项所对应的布局 文件中包含了两个组件:TextView和EditText,id分别为textview和edittext。 那么在加载列表项时,需要通过组件的id和data参数中 List元素中的Map对象对 应。因此,from参数Map对象的key,而to表示组件的id,例如,本例中的参数值 为from = new String[]{"userId", "userName"},to = new int[]{R.id.userId,R.id.userName}。意思就是将Map对象中key为userId 的value绑定到 R.id.userId上,userName也类似。现在来看data参数,一个 ListView由多个列表项组成。每一个列表项由一个Map对象提供数据,而多个列 表项则由List对象提供多个 Map对象。

二、ListView

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容 ,并且能够根据数据的长度自适应显示。

列表的显示需要三个元素:

1.ListVeiw 用来展示列表的View。

2.适配器 用来把数据映射到ListView上的中介。

3.数据 具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和 SimpleCursorAdapter。其中以ArrayAdapter最为简单,只能展示一行字。 SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter 可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以 列表的形式展示出来。SimpleAdapter继承自AdapterView。我们可以通过 setOnItemClickListener()方法给ListView添加监听器,当用户点击某一个列表 项中执行相应的操作。在监听器中需要复写public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)方法。

时间: 2025-01-03 08:04:06

Android常见控件之SimpleAdapter和List的相关文章

Android常见控件使用详解

本文实例为大家分享了六种Android常见控件的使用方法,供大家参考,具体内容如下 1.TextView 主要用于界面上显示一段文本信息 2.Button 用于和用户交互的一个按钮控件 //为Button点击事件注册一个监听器 public class Click extends Activity{ private Button button; @Override ptotected void onCreate(Bundle savedInstanceState) { super.onCreat

Android常见控件之TextView、EditView、Button、Menu

一.TextView控件常见的属性 属性名称 描述 android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链 接.可选值(none/web/email/phone/map/all).这里只有在同时设置text时才自 动识别链接,后来输入的无法自动识别. android:ems 设置TextView的宽度为N个字符的宽度.参见TextView中此属性的截图 android: scrollHorizontally 设置文本超出TextView

Android常见控件之ProgressBar

ProgressBar是在某些操作的进度中的可视指示器,为用户呈现操作的进度, 还它有一个次要的进度条,用来显示中间进度,如在流媒体播放的缓冲区的进度 .一个进度条也可不确定其进度.在不确定模式下,进度条显示循环动画.如果 不设置进度条的样式,默认是不确定进度样式,画面不会随着进度的不同而变化 . ProgressBar的样式有以下四种: android:progressBarStyle:默认进度条样式,不确定模式 android:progressBarStyleHorizontal:水平进度条

Android常见控件之RadioGroup,RadioButton,CheckBox和Toast

一.RadioGroup和RadioButton RadioButton单选按钮是一种双状态的按钮,可以选择或不选中.在单选按钮 没有被选中时,用户能够按下或点击来选中它.但是,与复选框相反,用户一旦 选中就不能够通过界面取消选中,但是可以通过代码来取消选中状态. RadioGroup用于创建一组选中状态相互排斥的单选按钮组.一个组中,只有 一个按钮可以被选中,选中了一个RadioButton会自动取消其它按钮的选中状态 .初始状态下,所有的单选按钮都未勾选,虽然不能取消一个特定的单选按钮的 勾

Android TextView控件文字添加下划线的实现方法_Android

如下所示: TextView tv = (TextView) findViewById(R.id.text); tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); tv.setText("添加下划线"); 以上就是小编为大家带来的Android TextView控件文字添加下划线的实现方法的全部内容了,希望对大家有所帮助,多多支持~ 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上

Android WebView控件捕获用户输入的信息_Android

WebView可所谓是Android中最强大的控件之一,无所不能. 于是有这么一个需求,用户在app之中内嵌的WebView中输入帐号密码的时候,App需要捕获已经输入的帐号密码. 当用户输入帐号密码,一般情况下会进行页面转跳,在页面转跳之前执行js脚本,通过js脚本来获取这个帐号密码的value值.要先获取各个元素的class值,需要解析整个html页面,那么我们可以重写 onLoadResource 这个方法,代码如下: webview.setWebViewClient(new WebVie

android studio控件拖不进去

问题描述 android studio控件拖不进去 创建一个banlk控件拖不进去,但创建一个empty控件拖得进去,这是为什么?

一个Demo让你掌握Android所有控件

原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士"       下面给出实现各个组件的源代码: 1.下拉框实现--Spinner [java] view plaincopyprint? package com.cellcom;      import java.util.ArrayList;   import java.util.List;      import android.app.Activity;   import android.os

笔记 - Android - 3.控件属性

Android:控件     <TextView/>:普通文本标签          <EditText/>:输入框         > android:hint:在输入框控件中起提示作用:         > android:lines:限定输入框的可视行数         > android:maxLength:限定输入框中的可输入字符长度:         > android:inputType:指定输入框的类型             >>