动态刷新listview中的数据
转自:http://www.cnblogs.com/ProgramBull/archive/2012/02/06/2340401.html
之前一直困扰listview刷新后位置的问题,现在才明白,原来不能重新设置listview的adapter,而应该用notifyDataSetChanged()来刷新,这样位置就不会置顶。
下面做了一个测试的例子,点击最后一条记录,会增加一条新的记录。
代码如下:
1.TestAdapter
package com.TestAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.AbsListView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;public class TestAdapter extends Activity {/** Called when the activity is first created. */private int[] images ;private ListView listview;private MyAdapter adapter;List<Map<String,Integer>> al;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);images = new int[]{android.R.drawable.ic_btn_speak_now,android.R.drawable.alert_light_frame,android.R.drawable.arrow_down_float,android.R.drawable.arrow_up_float,android.R.drawable.btn_star_big_off,android.R.drawable.btn_star_big_on,android.R.drawable.button_onoff_indicator_off,android.R.drawable.button_onoff_indicator_on,android.R.drawable.checkbox_off_background,android.R.drawable.checkbox_on_background,android.R.drawable.ic_btn_speak_now,android.R.drawable.ic_delete};listview = (ListView)findViewById(R.id.listview);al = new ArrayList<Map<String,Integer>>();for(int i=0; i<12; i++){HashMap<String,Integer > map = new HashMap<String,Integer>();map.put(""+i, images[i]);al.add(map);}adapter = new MyAdapter(this, al, R.layout.list_item, new String[]{"imageview", "tv"}, new int[]{R.id.imageview, R.id.tv});listview.setAdapter(adapter);listview.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> arg0, View arg1, int count,long arg3) {if(adapter.getCount()==count+1){HashMap<String ,Integer> map = new HashMap<String, Integer>();map.put(""+(adapter.mItemList.size()), android.R.drawable.ic_dialog_email);al.add(map);adapter.mItemList = al;adapter.notifyDataSetChanged();Toast.makeText(TestAdapter.this, "正在刷新", Toast.LENGTH_SHORT).show();} }});}private class MyAdapter extends SimpleAdapter{int count = 0;private List<Map<String, Integer>> mItemList;public MyAdapter(Context context, List<? extends Map<String, Integer>> data,int resource, String[] from, int[] to) {super(context, data, resource, from, to);mItemList = (List<Map<String, Integer>>) data;if(data == null){count = 0;}else{count = data.size();}}public int getCount() {return mItemList.size();}public Object getItem(int pos) {return pos;}public long getItemId(int pos) {return pos;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Map<String ,Integer> map = mItemList.get(position);int image = map.get(""+position);View view = super.getView(position, convertView, parent);ImageView imageview = (ImageView)view.findViewById(R.id.imageview);TextView tv = (TextView)view.findViewById(R.id.tv);imageview.setBackgroundResource(image);tv.setText(""+position);return view;}}
}
2.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"><ListView android:id="@+id/listview"android:layout_width="fill_parent"android:layout_height="wrap_content"></ListView></LinearLayout>
3.list_item.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"><ImageView android:id="@+id/imageview"android:layout_width="wrap_content"android:layout_height="wrap_content"></ImageView><TextViewandroid:id="@+id/tv" android:layout_width="fill_parent"android:layout_height="wrap_content"></TextView>
</LinearLayout>
动态刷新listview中的数据相关推荐
- Android 动态刷新listview中的数据
之前一直困扰listview刷新后位置的问题,现在才明白,原来不能重新设置listview的adapter,而应该用notifyDataSetChanged()来刷新,这样位置就不会置顶. 下面做了一 ...
- android如何获取listview中的任意行数据
android如何获取listview中的任意行数据 @Override public void onItemClick(AdapterView<?> arg0, View arg1, i ...
- 简单图库软件的实现(联网下载图片保存到sdcard在Listview中展示,并作为ContentProvider为其他软件提供图库数据)
先看效果图: 这就是一个可以联网的图库软件,下面我们来看看需求 业务需求 1.判断是否第一次运行,第一次运行,提示添加新条目 2.点击添加按钮,弹出对话框,输入图片网址和标题 3.下载图片保存到本地S ...
- listview显示mysql数据_C#在listview控件中显示数据库数据
一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...
- app把信息添加到mysql_如何将数据库表中的数据添加到ListView C#Xamarin Android App
几天前我问过如何在活动之间共享数据,一个用户告诉我使用SQLite,所以我做了.我想让用户点击MainLayout中的按钮,它会将他重定向到AddTaskLayout,在那里他可以添加任务名称,按下S ...
- android 在自定义的listview(有刷新加载项)列表中,数据过少时不能铺满整个屏幕时,header和footer同时显示问题...
android 在自定义的listview(有刷新加载项)列表中,数据过少时,当刷新时,加载项也会显示,这是很头疼的一个问题,查阅了一些资料,总结了一个比较不错的方法: 原来代码: 1 @Overr ...
- 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中
一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加 ...
- 从网络读取数据并动态的显示在ListView中
这两天写了个小程序,使用了从网络读取xml数据,并显示在ListView中. 这里面有几个关键点: 从网络读取数据 SAX解析xml 异步填充ListView 先看下截图: 非常简单的界面哈 为了方便 ...
- 【苹果相册推送】软件安装表现到ListView中,把网络请求来的数据存储下来
推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...
最新文章
- LINUX下GDB反汇编和调试
- SQL Server数据归档的解决方案
- C/C++开发游戏项目之《智能图形界面-贪吃蛇》
- ilitek win10 触摸屏驱动_想做多大尺寸触摸框找融创方圆定制触摸屏工厂
- mac上的Android虚拟机,android虚拟机能在retina MacBook pro上跑吗?
- 城镇化把握质量 数据分析让管理更创新
- Codeforces Round #222 (Div. 2): C. Maze(BFS)
- mssql 2005/2008/2012如何添加、查询、修改分区表中的数据 .
- 用Python创建文本文件
- hd620显卡驱动 linux,英特尔为Windows 10 推出新显卡驱动 26.20.100.7870
- 比较好用的门厂免费录单软件
- win10系统优化计算机,win10系统必做优化,让你的电脑告别卡顿,运行速度至少提升20%...
- 什么软件可以让头发变黑_吃什么可以让头发变黑?
- java使用ffmpeg完成视频加水印功能
- Ubuntu18.04 配置 bond4 + RG-5750-LACP
- 生于80年代,穷于10年代,败于90后
- 虚拟机安装debian教程
- 隐私集合求交(PSI)协议研究综述
- 周末交友好运气:请找中国张名记
- 微信小程序校园学生选课教学论坛信息管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】