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>

最新文章

  1. SharePoint 2013 状态机工作流之UpdateItemActivity
  2. c# 如何隐藏TabControl控件的标签
  3. JavaScript写一个拼图游戏
  4. Free Slideshow, Gallery And Lightboxes Scripts
  5. Ruby Hash与ActiveSupport’s HashWithIndifferentAccess对于key的区别
  6. VS2013远程调试功能
  7. shell复习笔记----查找与替换
  8. hadoop1中partition和combiner作用
  9. GUI编程笔记(java)01:GUI和CLI
  10. POJ 2411.Mondriaan&#39;s Dream 解题报告
  11. Sass函数--map
  12. datagridcolumn单元格怎么显示查询到的某个表的字段值(字段值可能为多个)
  13. JNI错误总结(转)
  14. thinkphp框架,数据动态缓存后,或数据已读取出来,想分页怎么办
  15. CF132E Bits of merry old England
  16. Brup Suite 渗透测试笔记(五)
  17. echarts实现折线图
  18. C语言感悟
  19. 详细了解下PHP的curl函数及常用之处
  20. 我的QT5学习之路(四)——信号槽

热门文章

  1. K8s中,tomcat的一部分jvm参数,如何通过env环境变量传递?
  2. Mysql中count(*)和limit同时使用的问题
  3. Codeforces 145E Lucky Queries 线段树
  4. 007 jquery过滤选择器-----------(屬性过滤选择器)
  5. ftp服务及其实现之vsftpd
  6. Android中加载事件的方式
  7. PHP 从基础开始 ——重要知识点笔记
  8. 如何用dat批处理文件关闭某端口对应程序-Windows自动化命令
  9. BZOJ 4636: 蒟蒻的数列 分块
  10. 重温JavaScript预编译的四个步骤