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

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
*
*/

分享到:
评论

相关推荐

    IOS应用源码——自定义风格UIPickerView.zip

    本资源"IOS应用源码——自定义风格UIPickerView.zip"提供了一个自定义风格的UIPickerView实现,帮助开发者拓展其在iOS应用中的功能和视觉效果。 首先,我们来看一下AFPickerView,这是源码中的核心部分。 Arkichek-...

    IOS应用源码——自定义风格的SegmentedControl.zip

    这个资源包“IOS应用源码——自定义风格的SegmentedControl.zip”显然提供了自定义Segmented Control样式的示例代码,这对于想要在iOS应用中实现独特界面效果的开发者来说非常有价值。 首先,我们要理解Segmented ...

    IOS应用源码——自定义数字键盘.rar

    这个“IOS应用源码——自定义数字键盘.rar”压缩包提供了一个实例,帮助开发者了解如何在iOS项目中实现这样的功能。下面将详细探讨自定义数字键盘的相关知识点。 1. 自定义键盘的基本原理: iOS系统默认提供了多种...

    IOS应用源码——自定义颜色的UISegmentedControl.zip

    这个压缩包"IOS应用源码——自定义颜色的UISegmentedControl.zip"提供了一个示例,展示了如何自定义UISegmentedControl的颜色,使得UI设计更加个性化。下面我们将详细讨论关于自定义UISegmentedControl颜色的相关...

    IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.zip

    这个压缩包“IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.zip”显然包含了一个示例项目,它演示了如何为UITableView创建自定义的单元格以实现各种输入界面样式。下面我们将深入探讨这一主题。 ...

    IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.7z

    这个源码包"IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.7z"提供了实现这一目标的具体示例,主要关注如何在UITableView中创建定制的输入界面。未来将详细探讨以下关键知识点: 1. 自定义...

    安卓Android源码——自定义本地相册的功能,可以多选图片用.zip

    在安卓开发中,自定义本地相册功能是常见的需求,特别是在涉及到用户选择多张图片的应用场景,例如社交应用、图片编辑应用等。本项目提供的源码着重于实现这样一个功能,让用户能够方便地从手机存储中选取多张图片。...

    安卓Android源码——ui开发类库示例源码.zip

    本资源“安卓Android源码——ui开发类库示例源码.zip”提供了丰富的UI开发示例,帮助开发者更好地理解和应用各种UI类库。下面,我们将详细探讨这些知识点。 1. **Android UI组件**:Android SDK包含了多种内置的UI...

    UG_OPEN_API二次开发之UIStyler开发

    本教程采用的是第一种方法——自定义创建。 #### 二、UIStyler的设计与实现 UIStyler是用于定制化用户界面的一个强大工具,接下来详细介绍如何使用UIStyler来实现自定义界面。 1. **UIStyler设计:** - 打开UG,...

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

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

    安卓Andriod源码——HerilyAlertDialog完全自定义的Dialog.zip

    "安卓Andriod源码——HerilyAlertDialog完全自定义的Dialog.zip"是一个示例项目,展示了如何从头构建一个高度定制的对话框组件。在这个项目中,开发者Herily分享了他/她的实现方法,帮助其他开发者理解并学习自定义...

    安卓Android源码——HerilyAlertDialog完全自定义的Dialog.zip

    在安卓开发中,自定义对话框(Dialog)是常见的需求,它可以提供更加个性化的用户体验,让用户与应用进行更直观的交互。本资源“安卓Android源码——HerilyAlertDialog完全自定义的Dialog.zip”正是为了帮助开发者...

    开源DirectUI的相关资料+五六个源码例子

    DirectUI不是微软官方提供的API,而是由第三方开发者基于DirectX技术开发的一套UI框架。它利用DirectX的强大图形处理能力,实现了硬件加速的用户界面渲染,从而能够创建出比标准Win32 API更加美观且响应更快的界面。...

    Google Android SDK开发范例大全——示例代码

    本资源“Google Android SDK开发范例大全——示例代码”聚焦于第五章,这部分内容通常会涵盖Android开发中的核心概念和实用技巧,通过具体的代码示例帮助开发者深入理解和实践。 第五章可能包含以下几个关键知识点...

    《Android应用开发揭秘》源码——第二章

    在本压缩包中,我们聚焦于《Android应用开发揭秘》一书的第二章源码,这是一份宝贵的学习资源,适合对Android应用开发感兴趣或正在深入学习这一领域的开发者。本书旨在揭示Android应用开发的内在机制,帮助读者从...

    AndroidStudio————实战演练——仿美团外卖菜单

    在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...

    安卓Android源码——模仿易信UI布局效果源码.zip

    这个压缩包"安卓Android源码——模仿易信UI布局效果源码.zip"提供了一个学习案例,它旨在帮助开发者了解如何模仿流行的即时通讯应用易信的用户界面(UI)布局。通过分析和实践这个源码,我们可以学习到以下关键知识...

    iOS实例开发源码——jerrodputman-CCKit-b689b21.zip

    《iOS实例开发源码——jerrodputman-CCKit-b689b21》 这个压缩包文件“jerrodputman-CCKit-b689b21.zip”是针对iOS平台的一个实例开发源码,由开发者Jerrod Putman创建。CCKit可能代表Custom Component Kit,是一个...

    安卓Andriod源码——智能UI锁屏.zip

    "安卓Andriod源码——智能UI锁屏.zip"这个压缩包很可能包含了用于构建智能UI锁屏的相关源代码,这将帮助我们深入理解Android系统中锁屏界面的工作原理,以及如何通过编程实现自定义的锁屏功能。 首先,我们要知道...

    IOS应用源码——tab bar controller 自定义颜色和演示demo.zip

    在iOS应用开发中,Tab Bar Controller是用户界面(UI)设计的一个重要组成部分,它提供了多视图间的平滑切换。本资源"IOS应用源码——tab bar controller 自定义颜色和演示demo.zip"聚焦于如何自定义Tab Bar ...

Global site tag (gtag.js) - Google Analytics