Android_listView
- package com.example.app5;
- 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.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.ViewTreeObserver.OnScrollChangedListener;
- import android.widget.AbsListView;
- import android.widget.AbsListView.OnScrollListener;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ArrayAdapter;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- import android.widget.Toast;
- /*
- * ListView:Android系统中显示列表的空间
- * 数据适配器:将复杂的数据(数组。链表,数据库,集合)填充在指定视图界面上
- * ArrayAdapter(数组适配器):用于绑定格式单一的数据
- * 数据源:可以是集合或数组
- * SimpleAdapter(简单适配器):用于绑定格式复杂的数据
- * 数据源:只能是特定泛型的集合
- *
- * 数据适配器是连接数据源和视图界面的桥梁
- * 实现过程:新建适配器-》添加数据源到适配器-》视图加载适配器
- */
- /*
- * 监听器:
- * OnItemClickListener:可以处理视图中单个条目的点击事件
- * OnScrollListener:
- * 监测滚动的变化,可以用于视图在滚动中加载数据
- *
- * 监听器是程序和用户交互的桥梁
- */
- public class ListView1 extends Activity implements OnItemClickListener,OnScrollListener{
- private ListView listView;
- private ArrayAdapter<String>arr_adapter;
- private SimpleAdapter sim_adapter;
- private List<Map<String,Object>> dataList;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_listview);
- listView = (ListView)findViewById(R.id.listView2);
- //1.新建一个数据适配器
- //ArrayAdapter(上下文,当前ListView加载的每一个列表项所对应的布局文件)
- /*
- * SimpleAdapter:
- * context:上下文
- * data:数据源(List<? extends Map<String,?>> data 一个Map组成的list集合 )
- * 每个Map对应ListView中的一行
- * 每个Map(键值对)中的键必须包含所有在from中所指定的键
- * resource:列表项的布局文件ID
- * from:Map 中的键名
- * to:绑定数据视图中的ID,与from成对应关系
- *
- */
- //2.适配器加载数据源
- String[] arr_data = {"zhangsan","lisi","wangwu","zhaoliu","zhouqi"};
- arr_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr_data);
- dataList = new ArrayList<Map<String,Object>>();
- sim_adapter = new SimpleAdapter(this, getData() ,R.layout.item1,new String[]{"image","text"},new int[]{ R.id.image, R.id.text});
- //3.视图(listView)加载适配器
- // listView.setAdapter(arr_adapter);
- listView.setAdapter(sim_adapter);
- //设置监听器
- listView.setOnItemClickListener(this);
- listView.setOnScrollListener( this);
- }
- private List<Map<String,Object>> getData(){
- for(int i= 0;i<20;i++){
- Map<String,Object>map = new HashMap<String,Object>();
- map.put("i", R.drawable.pic2);
- map.put("text", "image"+(i+1));
- dataList.add(map);
- }
- return dataList;
- }
- @Override
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- // TODO Auto-generated method stub
- //scrollState 滚动状态
- switch(scrollState){
- case SCROLL_STATE_FLING:
- System.out.println("用户在手指离开屏幕前,用力滑动了屏幕,视图惯性继续滑动");
- Map<String,Object> map = new HashMap<String,Object>();
- map.put("image", R.drawable.pic2);
- map.put("text", "添加项");
- dataList.add(map);
- sim_adapter.notifyDataSetChanged();
- break;
- case SCROLL_STATE_IDLE:
- System.out.println("视图已经停止滑动");
- break;
- case SCROLL_STATE_TOUCH_SCROLL:
- System.out.println("手指没有离开屏幕,视图正在滑动");
- break;
- }
- }
- @Override
- public void onScroll(AbsListView view, int firstVisibleItem,
- int visibleItemCount, int totalItemCount) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position,
- long id) {
- // TODO Auto-generated method stub
- String text = listView.getItemAtPosition(position)+"";
- Toast.makeText(this, position+"--"+text, Toast.LENGTH_SHORT).show();
- }
- }
Android_listView的更多相关文章
- Android_listview设置每条信息的间距
Android_listview设置每条信息的间距 设置listView的item间距,可以在xml布局文件中的listView下设置xml属性: android:divider="#000 ...
- Android_ListView简单例子
ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView ,今天我通过一个demo来教大家怎么样使用ListView组件 activity_main.xm ...
- Android_ListView适配器
ListView如何优化 复用convertView缓存(减少ListView绘制). 自定义静态类ViewHolder(减少findViewById次数),通过setTag().getTag()获取 ...
- Android开发10.1:UI组件适配器AdapterView(创建ListView,Adapter接口)
@version:Android4.3 API18 @author:liuxinming 概述 AdapterView继承了ViewGroup,它的本质是容器 ...
- 安卓---下拉刷新---上拉加载---解决导入library等自生成库文件失败的问题
本文的下拉刷新以及上拉加载都是用PullToRefresh实现的,关于PullToRefresh的介绍以及源码,网上可以找到很多,本人在此不再赘述. PullToRefresh是一套实现非常好的下拉刷 ...
- android 开发-ListView列表显示控件的实现
列表的显示需要三个元素: 1.ListVeiw 用来展示列表的View. 2.适配器 用来把数据映射到ListView上的中介. 3.数据 具体的将被映射的字符串,图片,或者基本组件. 根据列表 ...
- Android layout的XML
[注]此文是在学习andriod中的一些理解和总结,若有错望留言指教,谢谢 1 <RelativeLayout xmlns:android="http://schemas.androi ...
- 怎样使用ListView?
怎样使用ListView? watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFC ...
随机推荐
- CF GYM 100703I Endeavor for perfection
题意:有n个学习领域,每个领域有m个课程,学习第i个领域的第j个课程可以获得sij个技能点,在每个领域中选择一个课程,要求获得的n个技能点的最大值减最小值最小,输出符合要求的策略. 解法:尺取法.将课 ...
- 关于C#中static静态变量
C#静态变量使用static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静 ...
- 进程通信之一 使用WM_COPYDATA C++及C#实现 z
原文地址:http://blog.csdn.net/morewindows/article/details/6804157 进程间通信最简单的方式就是发送WM_COPYDATA消息.本文提供C++及C ...
- 【Python】Python-用大写字母打印你的名字
与孩子一起编程,有个作业题:用大写字母打印你的名字. CCCC A RRRRR C C A A R R C A A R R C AAAAAAA RRRRR C C A A R R CCCC A A R ...
- ImagePacker
[下载]:ImagePacker 0.0.2 [作用]:将多个图片打包到指定大小的图片中,并输出配置文件.类似于 TexturePacker,不过当前只支持 Starling 格式输出(因为我现在使用 ...
- 关于贴友的一个书本页面简单布局(html+css)的实现
贴友需求:以html+css仿照书本的页面实现布局效果(见图) html代码: 1: <!-- 我的博客:http://www.ido321.com --> DOCTYPE HTML> ...
- 2016"百度之星" - 复赛(Astar Round3) 1003 拍照
拍照 思路:先静态,离线树状数组,分别统计每个点向左向右能看到的船的数量.再枚举整个区间求最大值. 应为人和船都是动态的,假设船往左走,处理每个点看到向左最大船的数量,满足动态条件.就是向左的船一开始 ...
- PHP编码规范整理,很全很实用(图文版)
有一个组织叫做“php互操作性框架制定小组”,这个小组的主要目的是制定各种PHP编码规范的,下面就是我根据小组提供的建议整理的一些常用的编码规范. PSR-1: 1.PHP代码文件必须以<?ph ...
- Hadoop概念学习系列之例子形象再谈Client、NameNode、元数据(三十一)
Client相当于是送货人或提货人. NameNode相当于是仓库管理员. 元数据相当于是账本清单.
- hdu 5505 GT and numbers
GT and numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...