`
shinfocom
  • 浏览: 1197661 次
文章分类
社区版块
存档分类
最新评论

UI开发第五篇——自定义列表

 
阅读更多

自定义列表,设置列表背景、列表的列背景、列表的间隔线。
借鉴了一些前辈的代码。

MainActivity.class
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//绑定Layout里面的ListView
ListView list = (ListView) findViewById(R.id.ListView01);
//生成动态数组,加入数据
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<5;i++)
{
if(i==0){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.checked);//图像资源的ID
map.put("ItemTitle", "个人信息");
map.put("LastImage", R.drawable.lastimage);
listItem.add(map);
}else if(i==1){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.c);//图像资源的ID
map.put("ItemTitle", "修改密码");
map.put("LastImage", R.drawable.lastimage);
listItem.add(map);
}else if(i==2){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.d);//图像资源的ID
map.put("ItemTitle", "网络设置");
map.put("LastImage", R.drawable.lastimage);
listItem.add(map);
}else if(i==3){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.d);//图像资源的ID
map.put("ItemTitle", "打印设置");
map.put("LastImage", R.drawable.lastimage);
listItem.add(map);
}else{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.e);//图像资源的ID
map.put("ItemTitle", "返回");
map.put("LastImage", R.drawable.lastimage);
listItem.add(map);
}
}
//生成适配器的Item和动态数组对应的元素
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,// 数据源
R.layout.list_items,//ListItem的XML实现
//动态数组与ImageItem对应的子项
new String[] {"ItemImage","ItemTitle", "LastImage"},
//ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.last}
);
//添加并且显示
list.setAdapter(listItemAdapter);
//添加点击
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
setTitle("点击第"+arg2+"个项目");
if(arg2 == 4){
MainActivity.this.finish();
}
}
});
//添加长按点击
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
menu.setHeaderTitle("长按菜单-ContextMenu");
menu.add(0, 0, 0, "弹出长按菜单0");
menu.add(0, 1, 0, "弹出长按菜单1");
}
});
}
//长按菜单响应函数
@Override
public boolean onContextItemSelected(MenuItem item) {
setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目");
return super.onContextItemSelected(item);
}
}

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/ListView01"
android:divider="@drawable/divider_color"
android:dividerHeight="3dip"
android:cacheColorHint="#00000000"
/>
</LinearLayout>

list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip"
android:background="@drawable/list_bg">
<ImageView
android:paddingTop="12dip"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ItemImage"
/>
<TextView
android:text="TextView01"
android:layout_height="wrap_content"
android:layout_marginTop="30px"
android:textSize="20dip"
android:paddingLeft="12dip"
android:textColor="#000000"
android:layout_width="fill_parent"
android:id="@+id/ItemTitle"
android:layout_toRightOf="@+id/ItemImage"
/>
<ImageView
android:paddingTop="12dip"
android:layout_marginTop="20px"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/last"
/>
</RelativeLayout>

/**
* @author 张兴业
* 邮箱:xy-zhang@163.com
* qq:363302850
*
*/

分享到:
评论

相关推荐

    自定义的 Action Bar

    Android UI开发第二十五篇——分享一篇自定义的 Action Bar

    基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目《财务预算系统》开发全程实录.rar

    基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目《财务预算系统》开发全程实录——课程分为三季: 第一季:基础篇,主要内容包括:基础设置,主要是对整个框架的搭建,对流程的控制,对所用到的技术进行...

    android开发入门与实战(下)

    第5章 千里之行始于足下——第一个应用HelloWorld 5.1 HelloWorld应用分析 5.1.1 新建一个Android工程 5.1.2 填写工程的信息 5.1.3 编程实现 5.1.4 运行项目 5.2 调试项目 5.2.1 设置断点 5.2.2 Debug项目 5.2.3 ...

    Androids手机开发教程——从入门到精通详解

    Androids手机开发教程——从入门到精通详解 目 录 第一篇 Android 系统结构和 SDK 使用...............................................................................4 第 1 章 Android 的系统介绍............

    Android编程入门很简单.(清华出版.王勇).part2

    第5章探索界面ui元素 5.1认识Android视图、Widget以及布局 5.2必须了解的Widget组件 5.2.1 使用可滚动的文本控件——TextView 5.2.2 TextView中的一些功能 5.2.3 使用可滚动的视图——ScrollView 5.2.4文字的编辑 ...

    Android编程入门很简单.(清华出版.王勇).part1

    第5章探索界面ui元素 5.1认识Android视图、Widget以及布局 5.2必须了解的Widget组件 5.2.1 使用可滚动的文本控件——TextView 5.2.2 TextView中的一些功能 5.2.3 使用可滚动的视图——ScrollView 5.2.4文字的编辑 ...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    第5章 事件和数据回发机制 146 5.1 控件事件和数据回发概述 146 5.1.1 事件及其意义 146 5.1.2 数据回发机制 147 5.2 事件和数据回发机制的实现 148 5.2.1 客户端回传事件接口ipostbackeventhandler 148 5.2.2...

    学通Java的24堂课

    2.10.5 情景应用5——编写ui界面的加法 计算器 54 2.11 自我测试 55 2.12 行动指南 56 2.13 成功可以复制——迅雷创始人邹胜龙 57 第3堂课 java语言基础知识 59 视频讲解:178分钟 3.1 java主类结构 60 ...

    unity2d 游戏开发资源 unity2d 游戏开发资源

    44 制作动画 45 动作切换 46 编写程序 49 程序连接至对象 51 第5章 2D 碰撞 5.1 碰撞与触发 54 碰撞与碰撞器 54 触发与触发器 56 5.2 范例—简易 2D 碰撞与触发 58 建造地板 59 加入主角 59 制作陷阱 67 制作宝箱 68...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    第5 章 Spring Boot 基础 122 5.1 Spring Boot 概述 122 5.1.1 什么是Spring Boot 122 5.1.2 Spring Boot 核心功能 122 5.1.3 Spring Boot 的优缺点 124 5.1.4 关于本书的Spring Boot 版本 124 5.2 Spring Boot 快速...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    第5 章 Spring Boot 基础 122 5.1 Spring Boot 概述 122 5.1.1 什么是Spring Boot 122 5.1.2 Spring Boot 核心功能 122 5.1.3 Spring Boot 的优缺点 124 5.1.4 关于本书的Spring Boot 版本 124 5.2 Spring Boot 快速...

    asp.net知识库

    自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! 将 ASP.NET 2.0 应用程序服务...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    第5章 事件和数据回发机制146 5.1 控件事件和数据回发概述146 5.1.1 事件及其意义146 5.1.2 数据回发机制147 5.2 事件和数据回发机制的实现148 5.2.1 客户端回传事件接口ipostbackeventhandler148 5.2.2 ...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    第5章 事件和数据回发机制 146 5.1 控件事件和数据回发概述 146 5.1.1 事件及其意义 146 5.1.2 数据回发机制 147 5.2 事件和数据回发机制的实现 148 5.2.1 客户端回传事件接口ipostbackeventhandler 148 5.2.2...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    第5章 事件和数据回发机制 146 5.1 控件事件和数据回发概述 146 5.1.1 事件及其意义 146 5.1.2 数据回发机制 147 5.2 事件和数据回发机制的实现 148 5.2.1 客户端回传事件接口ipostbackeventhandler 148 5.2.2...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    第5 章 Spring Boot 基础 122 5.1 Spring Boot 概述 122 5.1.1 什么是Spring Boot 122 5.1.2 Spring Boot 核心功能 122 5.1.3 Spring Boot 的优缺点 124 5.1.4 关于本书的Spring Boot 版本 124 5.2 Spring Boot 快速...

    google android sdk开发范例大全 第二版 PDF 光盘代码

    第5章 交互式通信服务与手机控制   5.1 具有正则表达式的TextView   5.2 ACTION!CALL!拨打电话   5.3 自制发送短信程序   5.4 自制发送E-mail程序   5.5 自制日历手机数据库   5.6 手机...

Global site tag (gtag.js) - Google Analytics