- 浏览: 430972 次
- 性别:
- 来自: 深圳/湛江
-
文章分类
最新评论
-
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
[ios]利用xcode自动生成项目文档 -
tiger1819:
有源码么,想学习
[android]仿360状态,类流量监控桌面浮动显示 -
119568242:
借我一双翅膀 写道大哥,求指教啊?
IOS 开发,调用打电话,发短信,打开网址 -
借我一双翅膀:
大哥,求指教啊
IOS 开发,调用打电话,发短信,打开网址 -
li247276297:
楼主 是不是要加个权限?
[android]仿360状态,类流量监控桌面浮动显示
Android菜鸟日记
20 ListView
ListView之前已经在布局那篇写过了 后来发现这个系统自带的功能还是比较多的 很多东西完全不用自己来弄。
首先是上次写的
10.ListView 列表控件 [重点且相对复杂]
作用:列表显示信息内容
解释:
封装listView到activity的ListACtivity
Listview中的每行信息都是一个hashmap对象
Hashmap中存放<string ,string>的键值对
再把每个hashMap存入arraylist对象。
arraylist对象作为数据源备用。
listActivity需要自己的布局文件(废话 下面一句是重点)
listActivity 是需要设置适配器的
SimpleAdapter listAdapter = new SimpleAdapter(this,list,R.layout.main3,new String[]{"name","age","sex"},new int[]{R.id.tx,R.id.tx2,R.id.tx3});
SDK:
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
//Context context 上下文 也就是this
//List<? extends Map<String, ?>> data 数据源 也就是 ArrayList对象
//int resource 每行的布局文件,控制每行的布局
// String[] from 每行中需要显示的数据的键 组成的数组
// int[] to 前面需要显示的键值 对应显示的控件。
设置完设置适配器后需要this.setListAdapter(listAdapter)
把适配器设置到listactivity上。
适配器(Adapter):用于把资源与其他对象对接
Ex:把几个参数适配成一个对象。以方便使用。
在布局文件中写入listview
<ListView
android:id="@id/android:list"//
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical"
/>
监听:
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
可以在listactivity中写onListItemClick方法设置监听。
ListView l: listview控件对象
View v : 被点击的控件对象(2011-8-13时只知道是选择一行一行的)
int position:被点击控件位置
long id : 被点击控件位置ID
[关于id和position(位置)的思考]
Id是自然不变的 是1就是1 但是位置可变的 如果我把第二行拖到了第一行ID为改变但位置position改变了
这次的:
上面传入的adapter是simpleAdapter
其实一些简单的不需要如此麻烦
直接传入ArrayAdpater即可了
New ArrayAdapter(Context ct,布局方式,String [] data);
布局方式是通过R.layout.XXX
或者调用系统本身的 android.R.layout.xxx
Android系统中几个自带的比较常用的
android.R.layout.simple_list_item_single_choice
android.R.layout.simple_list_item_multiple_choice
android.R.layout.simple_list_item_checked
android.R.layout.simple_list_item_1
通过下面对适配 给list的适配器更加理解
package com.lurencun.TestRoom;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
private List list = new ArrayList();
private Context ct=null;
public MyAdapter(Context ct)
{
this.ct=ct;
Log.v("myTag", "list.size"+list.size());
}
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public void addString(String temp) {
list.add(temp);
this.notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// String inflater = Context.LAYOUT_INFLATER_SERVICE;
// LayoutInflater layoutInflater = (LayoutInflater) ct
// .getSystemService(inflater);
//
// //从系统获得布局填充器
// LinearLayout linearLayout = null;
//
//
// linearLayout = (LinearLayout) layoutInflater.inflate(
// R.layout.test, null);
// //布局填充器使用R.layout.test并返回使用填充器的布局
// TextView textView = ((TextView) linearLayout
// .findViewById(R.id.t_tx1));
// textView.setText(String.valueOf(list.get(position)));
//
TextView w=new TextView(ct);
w.setText(String.valueOf(list.get(position)));
return w;
}
}
getView中肯定要返回一个view
一、如果想使用布局文件的东西[R.layout.xxxx]
简单的说 通过布局文件填充器把布局文件转换成view
就需要使用到layoutInflater:布局填充器
layoutInflater需要从系统服务中获取
// LayoutInflater layoutInflater = (LayoutInflater) ct
// .getSystemService(inflater);
获取之后再通过layoutInflater的inflate方法 把所要用的布局填充进去。此方法返回填充的view[也就是填充的布局文件的view]。把此view强转成自己要用的。
然后对此view操作。
最后返回此view。
二、如果不使用布局文件
则直接创建相应的view 然后返回该对象即可。
注意:列表项的view 一定要在getView方法中创建。
2011-9-23
poolo
20 ListView
ListView之前已经在布局那篇写过了 后来发现这个系统自带的功能还是比较多的 很多东西完全不用自己来弄。
首先是上次写的
10.ListView 列表控件 [重点且相对复杂]
作用:列表显示信息内容
解释:
封装listView到activity的ListACtivity
Listview中的每行信息都是一个hashmap对象
Hashmap中存放<string ,string>的键值对
再把每个hashMap存入arraylist对象。
arraylist对象作为数据源备用。
listActivity需要自己的布局文件(废话 下面一句是重点)
listActivity 是需要设置适配器的
SimpleAdapter listAdapter = new SimpleAdapter(this,list,R.layout.main3,new String[]{"name","age","sex"},new int[]{R.id.tx,R.id.tx2,R.id.tx3});
SDK:
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
//Context context 上下文 也就是this
//List<? extends Map<String, ?>> data 数据源 也就是 ArrayList对象
//int resource 每行的布局文件,控制每行的布局
// String[] from 每行中需要显示的数据的键 组成的数组
// int[] to 前面需要显示的键值 对应显示的控件。
设置完设置适配器后需要this.setListAdapter(listAdapter)
把适配器设置到listactivity上。
适配器(Adapter):用于把资源与其他对象对接
Ex:把几个参数适配成一个对象。以方便使用。
在布局文件中写入listview
<ListView
android:id="@id/android:list"//
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="vertical"
/>
监听:
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
}
可以在listactivity中写onListItemClick方法设置监听。
ListView l: listview控件对象
View v : 被点击的控件对象(2011-8-13时只知道是选择一行一行的)
int position:被点击控件位置
long id : 被点击控件位置ID
[关于id和position(位置)的思考]
Id是自然不变的 是1就是1 但是位置可变的 如果我把第二行拖到了第一行ID为改变但位置position改变了
这次的:
上面传入的adapter是simpleAdapter
其实一些简单的不需要如此麻烦
直接传入ArrayAdpater即可了
New ArrayAdapter(Context ct,布局方式,String [] data);
布局方式是通过R.layout.XXX
或者调用系统本身的 android.R.layout.xxx
Android系统中几个自带的比较常用的
android.R.layout.simple_list_item_single_choice
android.R.layout.simple_list_item_multiple_choice
android.R.layout.simple_list_item_checked
android.R.layout.simple_list_item_1
通过下面对适配 给list的适配器更加理解
package com.lurencun.TestRoom;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter {
private List list = new ArrayList();
private Context ct=null;
public MyAdapter(Context ct)
{
this.ct=ct;
Log.v("myTag", "list.size"+list.size());
}
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public void addString(String temp) {
list.add(temp);
this.notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// String inflater = Context.LAYOUT_INFLATER_SERVICE;
// LayoutInflater layoutInflater = (LayoutInflater) ct
// .getSystemService(inflater);
//
// //从系统获得布局填充器
// LinearLayout linearLayout = null;
//
//
// linearLayout = (LinearLayout) layoutInflater.inflate(
// R.layout.test, null);
// //布局填充器使用R.layout.test并返回使用填充器的布局
// TextView textView = ((TextView) linearLayout
// .findViewById(R.id.t_tx1));
// textView.setText(String.valueOf(list.get(position)));
//
TextView w=new TextView(ct);
w.setText(String.valueOf(list.get(position)));
return w;
}
}
getView中肯定要返回一个view
一、如果想使用布局文件的东西[R.layout.xxxx]
简单的说 通过布局文件填充器把布局文件转换成view
就需要使用到layoutInflater:布局填充器
layoutInflater需要从系统服务中获取
// LayoutInflater layoutInflater = (LayoutInflater) ct
// .getSystemService(inflater);
获取之后再通过layoutInflater的inflate方法 把所要用的布局填充进去。此方法返回填充的view[也就是填充的布局文件的view]。把此view强转成自己要用的。
然后对此view操作。
最后返回此view。
二、如果不使用布局文件
则直接创建相应的view 然后返回该对象即可。
注意:列表项的view 一定要在getView方法中创建。
2011-9-23
poolo
发表评论
-
[android]使用 Matrix 的随触摸旋转的ImageView
2013-02-22 01:58 7956使用 Matrix 的随触摸旋转的ImageView 突 ... -
[android]动态改变按钮背景状态 StateListDrawable
2012-10-29 10:52 1492动态改变按钮背景状态 很少用到 上次和六哥聊到。 ... -
[android]ViewPage上无法通过onKeyDown()获得按钮事件
2012-08-20 04:53 1398系统无法监听到遥控器在VewPage上的按钮事件,如需 ... -
[android]待解决 lisTview 的onItemSelected 监听事件焦点的问题。
2012-08-18 21:18 2198今天遇到个问题 到目前为止 一直不理解为什么 大概描述下布局 ... -
[android]layout_weight 在layout_width 为fill_parent 与wrap_content 时的不同含义
2012-08-12 12:52 1280转自:http://hi.baidu.com/l ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 4063研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 3研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 0研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]Activity切换动画
2012-08-10 12:23 1494今天准备比赛的时候 遇到了这个问题。 查了些资料 ... -
android中ADT版本问题:无故报 java.lang.NoClassDefFoundError
2012-07-31 22:08 1819今天修改一个老项目的时候,发现在所有配置正确的情况下,代目无任 ... -
[android]仿360状态,类流量监控桌面浮动显示
2012-05-27 22:03 6065前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮 ... -
[转]android开发问题记录 "founderapp"
2012-02-08 10:48 1088这段时间,由于某种原因,一直在做android手机开发, ... -
关于weight
2012-02-05 21:20 859layout_weight=1后,除了其它的控件之外剩 ... -
判断SD卡是否存在
2012-02-02 17:54 902android.os.Environment.getEx ... -
[转]Android文件管理器介绍
2012-02-02 16:50 3097转自:http://www.linuxidc.com/L ... -
[转]Android文件管理器介绍
2012-02-02 16:49 5转自:http://www.linuxidc.com/L ... -
[转]android 几何图形的绘制
2012-02-01 16:06 2212转自:http://byandby.iteye.c ... -
Android菜鸟日记32-游戏中的碰撞
2012-01-11 23:09 1769Android菜鸟日记 32-游戏中的碰撞 一、 ... -
Android菜鸟日记31-selector 中使用 shape
2012-01-11 23:05 1644Android菜鸟日记 31- ... -
Android菜鸟日记30-View与SurfaceView
2012-01-11 22:45 973Android菜鸟日记 30 View与Surfa ...
相关推荐
通过研究`drag-sort-listview-master`的源码,开发者不仅可以学习到拖放排序的实现,还可以深入了解Android ListView的工作原理,以及如何优雅地处理触摸事件和视图更新。这对于提升个人的Android开发技能,特别是...
标题 "pinned-section-listview-master" 指的是一款仿照MIUI7文件管理器中“最近”功能的ListView实现,它特别强调了在ListView头部存在可以固定的分类。这个项目可能是一个开源Android开发示例,旨在帮助开发者创建...
Android-react-native-timeline-listview.zip,React本机应用程序的时间线组件,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
在这个“Android实现的ListView-ListViewAdapter(新闻列表事例)”中,我们将探讨如何利用ListView和ListViewAdapter来构建一个新闻列表,具体涵盖以下几个关键知识点: 1. **ListView**: ListView是Android SDK中的...
It works in all version of Android and it's very easy to adapt to your project. How to use with Gradle Simply add the repository to your build.gradle file: repositories { jcenter() maven { url '...
在"drag-sort-listview-master"这个压缩包中,你应该能找到项目的源代码、示例应用、README文件以及如何集成和使用的详细说明。通过研究这些内容,你可以深入理解该库的工作原理,并根据项目需求进行定制。对于希望...
AdapterDelegates-ListView Based on https://github.com/sockeqwe/AdapterDelegates." Favor composition over inheritance" for ListView Features Composable view handling on ListView Plugable data handler ...
21.[开源][安卓][拖拽]drag-sort-listview-master DragSortListView(DSLV)是Android ListView的一个扩展,支持拖拽排序和左右滑动删除功能。重写了TouchInterceptor(TI)类来提供更加优美的拖拽动画效果。 DSLV...
在Android应用开发中,ListView是常用的控件,用于展示大量数据列表。然而,为了提供更好的用户体验,许多应用都需要实现ListView的下拉刷新功能,让用户能够即时获取最新的数据。本示例"Android--开发-- ListView...
《深入解析Android高级应用:ListView与时间轴》 在Android应用开发中,ListView与时间轴是两种常见的界面展示组件,它们在数据展示和用户交互方面起着至关重要的作用。本资料包“Android高级应用源码-ListView&...
在Android应用开发中,ListView是常用的控件,用于展示可滚动的列表数据。然而,标准的ListView仅仅提供了基本的滑动浏览功能,如果需要实现更高级的交互,比如让用户能够自由拖动ListView中的item(列表项),则...
在Android应用开发中,ListView是常用的视图组件,它用于展示大量的列表数据。这个压缩包文件"Android--开发--ListView 实现点击侧边A-Z快速查找.rar"显然包含了一个示例,展示了如何在ListView中实现点击侧边字母...
在Android开发中,ListView是一种常见的组件,用于展示大量的列表数据。`ListView`的下拉刷新功能是提升用户体验的重要特性,特别是在处理动态加载数据的应用场景中。这个“android--ListView下拉刷新demo”就是一个...
在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。本资源"Android高级应用源码-listview快速滑动,修改默认的滑动条.zip"主要关注两个关键点:ListView的快速滑动优化以及自定义滚动条的实现。这...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。本资源"Android高级应用源码-listview下拉刷新加载更多.rar"提供了一个关于ListView实现下拉刷新和加载更多的示例源码,这对于开发者来说是...
在Android开发中,ListView是广泛使用的控件,用于展示大量数据列表。本资源"Android高级应用源码-listview 适配器 优化 重用.zip"聚焦于ListView的高级使用,包括适配器(Adapter)的实现、性能优化以及项(Item)...
标题中的"Android高级应用源码-listView下拉刷新上拉刷新带阻尼效果.zip"指的是一个Android应用程序,它实现了ListView组件的高级功能,包括下拉刷新(Pull-to-Refresh)和上拉加载更多(Load-more)操作,并且具有...
在Android应用开发中,图片加载是一项重要的任务,尤其是在ListView、GridView和ViewPager等组件中,大量图片的展示可能会导致性能问题,比如应用卡顿或者内存溢出。为了优化用户体验,开发者通常会采用异步加载策略...
《Android下拉刷新ListView详解——基于android-pulltorefresh库》 在移动应用开发中,用户界面的交互性与用户体验至关重要。其中,下拉刷新功能已成为许多Android应用的标准特性,尤其是在显示列表数据的场景中。`...
`android-pulltorefresh-listview`是一个专为ListView实现下拉刷新效果的开源库。这个库使得开发者能够轻松地将下拉刷新功能集成到他们的应用中,提高了用户体验。 首先,我们来看看`ListView`。ListView是Android ...