- 浏览: 760852 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (139)
- 玩转Android (48)
- Android创意美工 (0)
- Android杂谈 (23)
- Android实例练习 (2)
- Android ROM研究 (5)
- Android NDK开发指南 (5)
- Android NDK (0)
- Android Tips (3)
- Windows Phone 7 (5)
- iPhone (0)
- HTML5学习室 (0)
- JAVA (9)
- SSH+ibatis (8)
- PHP (0)
- IT生活 (1)
- linux (2)
- C (4)
- C++ (1)
- web 前端 (1)
- 云计算 (0)
- 设计模式 (0)
- C# (2)
- 其他 (1)
- 数据结构 (5)
- Web开发 (10)
- 数据库 (3)
- 搜索引擎 (0)
- Go语言 (0)
最新评论
-
wi100sh:
多谢分享~
玩转Android---UI篇---ImageButton(带图标的按钮) -
zhanghaichang:
好文章的。
高性能web开发技术(一) -
yingang:
引用classes.dex.dex2jar.jar 拖入 j ...
Andorid杂谈---Apk文件的反编译 -
扶摇诺:
讲解的简明易懂,多谢啦!
玩转Android---UI篇---LinearLayout(线性布局) -
a13429921973:
更为详细的图文介绍,可参考这个http://blog.csdn ...
Android ROM研究---CyanogenMod源代码下载及编译
ListView是列表组件,这个ListView是我接触的目前所有Android UI控件中最为麻烦的控件,之所以麻烦就是因为它的各种的适配器Adapter特别麻烦,Adapter的组织结构图如下
在ListView中,以内不同的Adapter不同,所以也会有不同的效果,其中比较常用的是SampleAdapter,SimpleCursorAdapter,ArrayAdapter,BaseAdapter等,
万事开头难,还是从最简单的SimpleAdapter说起,以后再一点点学习
simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)等等。下面的代码都直接继承了ListActivity,ListActivity和普通的Activity没有太大的差别,不同就是对显示ListView做了许多优化,方面显示而已。
先看看一个实例,是由SimpleAdapter与ListView绑定后的一个小例子。
ListViewone.java文件
package org.hualang.simpleadapter; import java.util.ArrayList; import java.util.HashMap; import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.Toast; public class ListViewone extends ListActivity { /** Called when the activity is first created. */ private Toast toast; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList<HashMap<String,String>> list=new ArrayList<HashMap<String,String>>(); HashMap<String,String> map1=new HashMap<String,String>(); HashMap<String,String> map2=new HashMap<String,String>(); HashMap<String,String> map3=new HashMap<String,String>(); map1.put("name", "凝墨"); map1.put("phone", "13699452790"); map2.put("name", "小棕"); map2.put("phone", "15827980910"); map3.put("name", "花郎"); map3.put("phone", "18678091166"); list.add(map1); list.add(map2); list.add(map3); SimpleAdapter listAdapter=new SimpleAdapter(this, list, R.layout.info, new String[] {"name","phone"}, new int[] {R.id.name,R.id.phone}); setListAdapter(listAdapter); } protected void onListItemClick(ListView l,View v,int position,long id) { super.onListItemClick(l,v,position,id); if(l.getItemIdAtPosition(position)==0) { toast.makeText(getApplicationContext(), "我是凝墨", Toast.LENGTH_SHORT).show(); }else if(l.getItemIdAtPosition(position)==1) { toast.makeText(getApplicationContext(), "我是小棕", Toast.LENGTH_SHORT).show(); }else if(l.getItemIdAtPosition(position)==2) { toast.makeText(getApplicationContext(), "我是花郎", Toast.LENGTH_SHORT).show(); } } }
main.xml文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearlayout" android:orientation="vertical" > <ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false" android:scrollbars="vertical" /> </LinearLayout> </LinearLayout>
info.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="1dip" android:paddingBottom="1dip" > <TextView android:id="@+id/name" android:layout_width="180dip" android:layout_height="30dip" android:textSize="10pt" android:singleLine="true" /> <TextView android:id="@+id/phone" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="right" android:textSize="10pt" /> </LinearLayout>
使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行。HashMap的每个键值数据映射到布局文件中对应id的组件上。因为系统没有对应的布局文件可用,我们可以自己定义一个布局info.xml。下面做适配,new一个SimpleAdapter参数一次是:this,布局文件(info.xml)。布局文件的组件name,phone。布局文件的各组件分别映射到HashMap的各元素上,完成适配。
运行结果如下:
当点击了第一行
实例2:显示一个带图片的ListView,使用适配器SampleAdapter
ListViewone.java
package org.hualang.simpleadapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.ListActivity; import android.os.Bundle; import android.widget.SimpleAdapter; public class ListViewone extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.info, new String[]{"name","phone","img"}, new int[]{R.id.name,R.id.phone,R.id.img}); setListAdapter(adapter); } private List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "凝墨"); map.put("phone", "13699782346"); map.put("img", R.drawable.pic1); list.add(map); map = new HashMap<String, Object>(); map.put("name", "小棕"); map.put("phone", "15899034671"); map.put("img", R.drawable.pic2); list.add(map); map = new HashMap<String, Object>(); map.put("name", "花郎"); map.put("phone", "18677656526"); map.put("img", R.drawable.pic3); list.add(map); return list; } }
info.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5px"/> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFFFF" android:textSize="22px" /> <TextView android:id="@+id/phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFFFF" android:textSize="13px" /> </LinearLayout> </LinearLayout>
这里,就不做事件处理了,运行结果如下:
发表评论
-
玩转Android---2D图形及动画---动画分析(Tween详细分析)
2011-09-26 21:59 2628在Android系统中提供了两种动画实现方式:一种是Tween ... -
玩转Android---2D图形及动画---图片处理
2011-09-26 13:08 1780在Android中很多地方都使 ... -
玩转Android--UI篇--PreferenceActivity(开启wifi和音乐等)
2011-09-01 11:57 4851本测试主要是为了测试PreferenceActivity的使用 ... -
玩转Android---2D图形及动画---Gif动画
2011-08-05 09:36 2218由于Gif本身就是动画,所以如果能够直接使用的话,会省去很多的 ... -
玩转Android---2D图形及动画---Frame动画
2011-08-01 20:53 2086Frame动画其实就是逐帧动画,用法也比Tween动画简单,只 ... -
玩转Android---2D图形及动画---Tween动画
2011-07-31 22:53 2180Android平台提供了两类动画,分别是Tween动画,和Fr ... -
玩转Android---2D图形及动画---View类使用
2011-07-30 23:39 2800由于游戏界面是由大量美工资源图片构成的,所以,在设计游戏界面的 ... -
玩转Android--组件篇---Handler的使用
2011-07-30 14:01 5359public class Handler ... -
玩转Android---UI篇---ZoomControls放大缩小图片
2011-07-27 13:03 7249ZoomControls控件是一个可以缩放但控件,效果如下图 ... -
玩转Android---组件篇---TextSwitcher
2011-07-25 09:21 2193还记得有一次淘宝的电话面试的时候问了我一个关于Android的 ... -
玩转Android---组件篇---AnalogClock,DigitalClock
2011-07-10 19:28 2941首先要说的是,这两个控件并不是经常的使用,但是如果程序需要的话 ... -
玩转Android---组件篇---SeekBar,RatingBar,Chronometer
2011-07-10 19:12 2856今天补充三个组件的使用,避免日后忘记。它们分别是 SeekB ... -
玩转Android---组件篇---Handler的使用(2)
2011-05-28 17:15 2821对于Handler来说,它和与它调用它的Activity是出于 ... -
玩转Android---组件篇---Handler的使用(1)
2011-05-28 15:37 2173在android中,有很多功能是不能放在onCreate或者o ... -
玩转Android---事件监听篇---第2篇
2011-05-27 10:30 5250事件监听篇---第二篇 下面是各种常用控件的事件监听的 ... -
玩转Android---事件监听篇---第1篇
2011-05-26 21:29 9933事件就是用户与UI界面的交互时所触发的操作。比如点击某一个按钮 ... -
玩转Android---组件篇---数据存储之SQLite
2011-04-17 17:05 8484Android中通过SQLite数据库引擎来实现结构化数据存储 ... -
玩转Android---组件篇---数据存储之File
2011-04-17 11:07 2046我们可以将一些数据直接以文件的形式保存在设备中。例如,一些文本 ... -
玩转Andorid---组件篇---数据存储之preference
2011-04-14 21:58 2303程序是数据的输入、处 ... -
玩转Android---组件篇---Broadcast Receiver(广播接收器)
2011-04-14 19:24 29347Braodcast Receiver顾名思义 ...
相关推荐
•Android---UI篇---ListView之SampleAdapter(列表)---1 • •Android---UI篇---ListView之ArrayAdapter(列表)---2 • •Android---UI篇---ListView之SimpleCursorAdapter(列表)---3 • •Android---UI篇---...
本篇文章将深入剖析`drag-sort-listview-master`这个源码项目,揭示其工作原理,并提供实用的开发技巧。 首先,我们需要理解Drag-Sort-Listview的核心概念。它主要由两部分组成:拖动(Drag)和排序(Sort)。拖动是指...
MVC-ListView-DataModel-master.zipMVC-ListView-DataModel-master.zipMVC-ListView-DataModel-master.zipMVC-ListView-DataModel-master.zipMVC-ListView-DataModel-master.zipMVC-ListView-DataModel-master....
这个"Android-ListView-Example"项目显然旨在教你如何在Android应用中有效地使用ListView。以下是对这个主题的详细说明: 1. **ListView的基本概念**:ListView是一个视图容器,它能够显示一组可滚动的项目列表。每...
ListView是Android应用程序中常用的一种UI控件,用于显示一系列数据项,如联系人列表、消息列表等。下面将从给定的部分内容中提炼出关于ListView的关键知识点。 ### 虚拟化与适配器 虚拟化是解决大数据集时内存和...
在Android开发中,ListView是一种常见的组件,用于展示大量的列表数据。`ListView`的下拉刷新功能是提升用户体验的重要特性,特别是在处理动态加载数据的应用场景中。这个“android--ListView下拉刷新demo”就是一个...
ListView是Android SDK中的一个视图组件,用于展示大量的列表数据。通过适配器(Adapter)将数据源与ListView绑定,可以实现数据的动态加载和滚动显示。然而,ListView默认并不支持下拉刷新功能,这就需要额外的库来...
本篇文章将深入探讨该库的工作原理以及如何在项目中集成和自定义`android-pulltorefresh-listview`。 一、`android-pulltorefresh`库简介 `android-pulltorefresh`库由英国开发者Chris Banes创建,它提供了一个可...
在Android应用开发中,UI设计和用户体验是至关重要的部分,特别是在构建列表视图(ListView)时。本知识点主要探讨如何实现“滑动ListView时标题置顶”和“ListView吸顶效果”,以及如何使安卓系统状态栏透明化。这些...
Android-react-native-timeline-listview.zip,React本机应用程序的时间线组件,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
### Android-ListView中嵌套(ListView)控件兼容问题 #### 背景与问题描述 在Android开发中,有时我们需要在`ListView`中嵌套另一个`ListView`以实现更复杂的用户界面设计。然而,在实际操作过程中可能会遇到一些...
在Android开发中,ListView是一种常用的UI组件,用于展示大量数据列表。然而,有时我们需要实现更复杂的交互效果,比如点击列表项后展开一个自定义的详细信息面板。这就是所谓的"android-listview列表伸缩自定义组件...
在Android平台上,ListView是一种常用的控件,用于显示大量的列表数据。然而,为了使应用更加生动、交互性更强,开发者通常会引入“拉动刷新”功能,让用户在滚动到列表顶部时能够手动触发新数据的加载。"Android-...
- **Fragment**: 这是Android开发中的重要组成部分,允许在活动中创建可重用的、独立的UI块。在Android 3.0(API级别11)及以上版本中引入,但v4库使其可以在低至Android 1.6(API级别4)的版本上使用。 - **Loader...
标题 "pinned-section-listview-master" 指的是一款仿照MIUI7文件管理器中“最近”功能的ListView实现,它特别强调了在ListView头部存在可以固定的分类。这个项目可能是一个开源Android开发示例,旨在帮助开发者创建...
在Android开发中,`android-support-v7`库和`android-support-v7-recyclerview`库是两个非常关键的组件,它们极大地扩展了Android SDK的功能,并帮助开发者实现向后兼容性,以便在不同版本的Android系统上运行应用。...
在Android开发中,ListView是一种常用的UI组件,常用于展示大量数据列表。本教程将详细介绍如何在ListView中实现带标题栏的效果。标题栏通常用于显示分类信息或者操作按钮,为用户提供更好的交互体验。以下是对实现...
在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。本资源"安卓listview相关相关-Android--ListView返回第一条数据的实现.rar"主要关注如何实现在ListView中快速定位到第一条数据。以下是对...
android studio开发app项目 Android-ListView 实现点击侧边A-Z快速查找 Android-ListView 实现点击侧边A-Z快速查找 Android-ListView 实现点击侧边A-Z快速查找
在这个“Android实现的ListView-ListViewAdapter(新闻列表事例)”中,我们将探讨如何利用ListView和ListViewAdapter来构建一个新闻列表,具体涵盖以下几个关键知识点: 1. **ListView**: ListView是Android SDK中的...