用SimpleAdapter来设置ListView的内容

Mainactivit.java
package com.kale.listview; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ListView;
import android.widget.SimpleAdapter; public class MainActivity extends Activity { ListView myLv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); myLv = (ListView)findViewById(R.id.red_listView_id);
//定义5个人名数组,5个性别数组,5个图片(图省事,我用一个图片代替了)
final String []name = {"Jack","Tony","Tom","Luna","Nacy"};
String []sex = {"male","male","male","female","female"};
int []pic = {R.drawable.kale,R.drawable.kale,R.drawable.kale,R.drawable.kale,R.drawable.kale}; //建立一个list,里面的元素师Map,Map中是String,object
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
for (int i = 0; i < name.length; i++) {
//建立list中的子元素,用键值对的形式来存放数据
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("picture", pic[i]);
listItem.put("name", name[i]);
listItem.put("sex", sex[i]);
//将子元素添加入list中
list.add(listItem);
} //建立一个simpleAdapter
//1.Context对象,2.list对象,3.item的布局文件,4.各个元素来源的键名,5.各个元素对应控件的id
SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.item,
new String[] {"picture","name","sex"},
new int[] {R.id.pic_imageView_id,R.id.name_textView_id,R.id.sex_textView_id}); myLv.setAdapter(adapter);
myLv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> arg0, View parent, int position,long id) {
// TODO 自动生成的方法存根
System.out.println("onItemClick"+name[position]+"被选中了"); }
});
//列表项被选中后的监听器,两个监听器的区别参考这篇文章:http://blog.csdn.net/bcai2/article/details/15028979
//就和电视的菜单一样,上下选择来触发选中(selected)事件,按下确定才是点击(click)事件。
myLv.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView<?> parent, View arg1,int position, long id) {
// TODO 自动生成的方法存根
System.out.println("onItemSelected"+name[position]+"被选中了");
} @Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO 自动生成的方法存根 }
});
}
}
activity_main.xml
<LinearLayout 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:orientation="vertical" > <!-- 设置红色分割线的listView -->
<ListView
android:id="@+id/red_listView_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="2dp"
android:layout_gravity="center"
android:headerDividersEnabled="false"/> </LinearLayout>
item.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="wrap_content"
android:orientation="horizontal" > <ImageView
android:id="@+id/pic_imageView_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" /> <TextView
android:id="@+id/name_textView_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:layout_marginLeft="10dp"
android:layout_gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView
android:id="@+id/sex_textView_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:textColor="#0000ff"
android:text="Small Text"
android:textAppearance="?android:attr/textAppearanceSmall" /> </LinearLayout>
用SimpleAdapter来设置ListView的内容的更多相关文章
- 使用自定义的Adapter来设置ListView的内容
这里主要是学习的Adapter的机制 MainActivity.java package com.kale.listview; import android.app.Activity; import ...
- Android 设置ListView不可滚动 及在ScrollView中不可滚动的设置
http://m.blog.csdn.net/blog/yusewuhen/43706169 转载请注明出处: http://blog.csdn.net/androiddevelop/article/ ...
- WPF学习笔记(3):ListView根据内容自动调整列宽
DataGrid中,只要不设置DataGrid的宽度和列宽度,或者将宽度设置为Auto,那么表格就会根据内容自动调整宽度,以显示所有内容.但如果是ListView,按以上方法设置,却达不到列宽自动调整 ...
- ListView列宽自适应,设置ListView.Column[0].Width := -1;
使用TListView列表显示内容,如果列内容过长,就会显示成‘XXX…’形式,此时如果双击列标题,列宽将变为自适应.用代码设置如下: 1.设置ListView.Column[0].Width := ...
- WPF设置DataGrid行内容高度自适应 与 TextBox/TextBlock内容高度自适应
WPF设置DataGrid行内容高度自适应 TextBox/TextBlock内容高度自适应 参考: DataGrid 控件中的调整大小选项: http://msdn.microsoft.com/ ...
- JQuery_DOM 简介/设置元素及内容
一.DOM 简介 1.D 表示的是页面文档Document.O 表示对象,即一组含有独立特性的数据集合.M表示模型,即页面上的元素节点和文本节点. 2.DOM 有三种形式,标准DOM.HTML DOM ...
- Android 设置ListView当前显示的item
项目中可能会有这种需求:动态设置ListView显示的item 这种需求可能会出现在不同的情况下,有的是打开页面就要显示在特定的位置,也有的是浏览列表时实时更新数据并且改变了集合中数据,或者是某种条件 ...
- 实现ScrollView中包含ListView,动态设置ListView的高度
ScrollView 中包含 ListView 的问题 : ScrollView和ListView会冲突,会导致ListView显示不全 <?xml version="1.0" ...
- 后台动态设置前台标签内容和属性(转自http://www.wzsky.net/html/Program/net/26171.html)
和以前的asp不同,在asp.net中为了彻底的代码分离,我们一般不采用<%=%>嵌入标签中来设置一些属性和内容.一般来说有2种情况:(一)设置标签的内容,比如<title>这 ...
随机推荐
- Qwidget+opencv显示图像
步骤 1. 设置opencv库路径 在.pro文件中添加 INCLUDEPATH += D:/opencv/OpencvMingw/opencv310/include LIBS += D:/openc ...
- Vue.JS 2.x
基于ThinkPHP 5.0与Vue.JS 2.x的前后端开源开发框架VueThink VueThink 项目介绍 VueThink是一套基于Vue全家桶(Vue2.x + Vue-router2.x ...
- 【LOJ】#2513. 「BJOI2018」治疗之雨
题解 具体就是列一个未知数方程\(dp[i]\)表示有\(i\)滴血的时候期望多少轮 \(dp[i] = 1 + \sum_{j = 1}^{i + 1} a_{i,j}dp[j]\) \(dp[n] ...
- L3-004 肿瘤诊断 dfs bfs
在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环.给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积. 输入格式: 输入第一行给出4个正整数:M.N.L.T,其中M和N是每张切片的尺寸(即每张切片 ...
- 032 Spark容错特性
1.spark容错主要分为两个方面 其一是集群 再者为spark的应用程序. 2.Driver 重要补充: driver宕机: Spark On Yarn:总之,要重启 client:只能重启job ...
- 洛谷P1533 可怜的狗狗 [平衡树,FHQ_Treap]
题目传送门 可怜的狗狗 题目背景 小卡由于公务需要出差,将新家中的狗狗们托付给朋友嘉嘉,但是嘉嘉是一个很懒的人,他才没那么多时间帮小卡喂狗狗. 题目描述 小卡家有N只狗,由于品种.年龄不同,每一只狗都 ...
- [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本
0x00 之前在t00ls上看到的,漏洞原理很简单,但是都是细节问题,很值得去学习. 感谢bypass师傅. 也发了邮件给官方,但没有任何回复,估计是漏洞作者bypass师傅报备了吧. 0x01 ...
- html (第四本书第五章参考)
上机1 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8 ...
- CF1065E Side Transmutations
link 题意: 给你一个长为m的序列$b_i$,定义两个字符串a,b相同当前仅当a执行以下操作后能变成b:($\rm{prefix}(x,y)$及$\rm{suffix}(x,y)$定义为串x的前/ ...
- 【BZOJ-3456】城市规划 CDQ分治 + NTT
题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=3456 Solution 这个问题可以考虑dp,利用补集思想 N个点的简单图总数量为$2^{ ...