- 浏览: 15100 次
- 性别:
- 来自: 成都
最近访客 更多访客>>
最新评论
-
mysfzj_web:
heroxuetao 写道学习一下
我也是才学的。。后面最后 ...
根据公司项目~学习搭建开发的框架(一) -
heroxuetao:
学习一下
根据公司项目~学习搭建开发的框架(一)
效果图
<1>
当前listview里的原始数据
<2>
当滑动到最低端时候,开始加载新数据,出现loading
<3>
新数据加载后显示
具体实现
写一个适配器,一般会自己继承,然后重新一些东西
public class MyAdapter extends ArrayAdapter<bean>{
private final LayoutInflater mInflater;
public MyAdapter(Context context, List<bean> apps) {
super(context, 0, apps);
mInflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
bean bean = this.getItem(position);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item, parent, false);
}
TextView data = (TextView) convertView.findViewById(R.id.text);
data.setText(bean.getName());
return convertView;
}
}
activity加载数据,新数据一般是当你第一次默认显示的数据已经完全显示,然后滚轮拖动到屏幕下端时候加载,也就是
firstVisibleItem + visibleItemCount = totalItemCount的时候,此时才启动线程开始加载数据。
public class LoadActivity extends Activity {
private ListView lv = null;
ArrayList<bean> beans = new ArrayList<bean>();
MyAdapter adapter = null;
boolean isRefresh = true;
boolean isFirstRun = true;
private bean bean=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.refresh);
lv = (ListView) findViewById(R.id.listview);
lv.setOnScrollListener(new OnScrollListener() {
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
Log.i("v", "" + visibleItemCount);
Log.i("f", "" + firstVisibleItem);
Log.i("t", "" + totalItemCount);
//第一次进入时候,如果当前显示页面放不下第一次的所有数据,会分页显示
//就算滚轮到最低端,也不会加载的新的数据,只有当第一次数据显示完后才会刷新出现loading
//如果没有下面的判断,在你进入这个listview就会直接加载一次新数据,在这个例子里,比如你第一次加载的事40条数据,会变成45条
if (isFirstRun) {
isFirstRun = false;
return;
}
if ((firstVisibleItem + visibleItemCount) == totalItemCount
&& isRefresh) {
isRefresh = false;
//loading条显示出来
findViewById(R.id.loadtext).setVisibility(View.VISIBLE);
new LoadThread().start();
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
});
adapter = new MyAdapter(this.getBaseContext(), getFirstBean());
lv.setAdapter(adapter);
}
//第一次加载的数据
private ArrayList<bean> getFirstBean(){
bean =new bean();
for (int i = 0; i < 20; i++) {
bean = new bean();
bean.setName("Json " + i + " 号");
beans.add(bean);
}
return beans;
}
//需要加载的新数据
private void refreshListView() {
if (beans == null || adapter == null) {
return;
}
bean bean = null;
for (int i = 0; i < 5; i++) {
bean = new bean();
bean.setName("新数据: " + i);
beans.add(bean);
}
}
Handler _handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
adapter.notifyDataSetChanged();
//当数据已经改变后loading条不显示出来
findViewById(R.id.loadtext).setVisibility(View.INVISIBLE);
isRefresh = true;
break;
case 2:
}
}
};
@Override
public void run() {
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//传给handler处理
_handler.sendEmptyMessage(1);
}
}
}
发表评论
-
根据公司项目~搭建开发的框架(四)-附全部源码
2012-01-10 15:45 745用这个搭建框架写了个新浪微博的Oauth认证。 实现了Oau ... -
根据公司项目~搭建开发的框架(三)
2012-01-10 15:36 646效果图 初始 输入数据 Add ... -
根据公司项目~搭建开发的框架(二)
2012-01-10 15:34 823创建数据库工具类 SharedPrefe ... -
根据公司项目~学习搭建开发的框架(一)
2012-01-10 15:32 1178今天主要是搭建 ... -
深入理解AndroidManifest.xml
2011-12-29 14:50 867一、关于AndroidManifest.xml Andr ... -
Android-sharedUserId
2011-12-29 14:36 736Android给每个APK进程分配 ... -
从网上获取图片
2011-12-23 10:55 650效果展示 输入图片地址,点击butto ... -
Android-线程笔记
2011-12-23 10:50 14401. Android进程 ... -
Android-MVC
2011-12-23 10:34 1089Android-MVC 模型(Model)视图(Vi ... -
android include 使用
2011-12-20 11:00 2380在main.xml中包含aaa.xml,bbb.x ... -
项目中ViewFlipper 的使用
2011-12-20 10:14 826效果展示 点击右下角的btn 在同一个 ... -
activity之间的切换效果(搜集)
2011-12-20 10:12 1423主要是两个activity之间的相互切换,所有有2个ac ... -
项目中遇到的一个问题-checkbox
2011-12-20 09:12 709模拟下在项目中出现的问题 <1>选中 ...
相关推荐
为了解决这些问题,通常会采用“动态加载数据分页”的策略。本文将深入探讨如何使用Handler+线程和AsyncTask两种方法来实现ListView的动态加载分页。 首先,我们来看看Handler+线程的实现方式。在主线程中,我们不...
为了能够动态地向`ListView`中添加数据,我们需要完成以下步骤: 1. **创建新的WinForms项目**:打开Visual Studio,创建一个新的Windows Forms App (.NET Framework)项目。 2. **添加ListView控件**:在工具箱中...
友们在使用ListView的过程中,是否考虑过加载大量的数据时,如何提高显示速度? 朋友你是不是也想对其优化,形成动态加载? 如果你也有过这样的想法,那么我们是同路人! 通过查看ListView的API,我们似乎找不...
"ListView实现动态加载"这个主题,涉及到的是如何高效地处理大量数据并根据用户滚动时动态加载更多内容的技术。动态加载通常用于节省内存,提高用户体验,避免一次性加载过多数据导致应用卡顿。 1. **ListView基础*...
在本视频案例“视频案例-3.ListView动态添加数据”中,我们将深入探讨如何在Android开发环境中,使用ListView组件动态地加载和展示数据。ListView是Android UI设计中的一个重要组成部分,它用于展示大量的数据列表,...
本篇文章将深入探讨如何在ListView中动态添加数据,这在实际应用中是非常常见且重要的功能。 首先,理解ListView的基本结构至关重要。ListView主要由Adapter驱动,Adapter就像一个桥梁,连接数据源(例如ArrayList...
"实现竖排ViewPager+ListView动态加载数据"这个项目就是针对这种需求的一个实践。 **ViewPager组件**: ViewPager是一个强大的Android视图组件,它允许用户水平滑动浏览多个页面。在本项目中,ViewPager被改造以...
动态追加数据是指在ListView已有的内容基础上,根据用户操作或网络数据加载情况,实时添加新的数据项,同时显示追加进度,以提高用户体验。这里我们将深入探讨如何实现这个功能。 首先,我们需要一个ListView实例,...
本项目“android动态加载Listview”旨在提供一种更实用、更贴近实际应用场景的数据动态加载解决方案。 首先,我们要理解什么是动态加载。动态加载(也称为懒加载)是在用户滚动ListView时按需加载数据的技术。它...
在Activity或Fragment中,当需要增加新条目时,调用Adapter的`add()`方法添加数据到数据源,然后调用`notifyDataSetChanged()`通知Adapter数据已改变,ListView会自动刷新并显示新的条目。 4. 实现动态删除: ...
Android开发中Listview动态加载数据的方法示例主要介绍了Android开发中Listview动态加载数据的方法,结合实例形式较为详细的分析了Android操作ListView界面布局与数据动态更新相关操作技巧。下面是对该方法的详细...
综上所述,"vb listview动态的加载数据"这个主题涵盖了一系列与VB编程、ListView控件交互、异步编程、数据加载策略和用户体验相关的技术点。正确理解和运用这些知识点,可以构建出高效、用户友好的数据展示应用。
本篇主要探讨如何动态地添加和移除ListView中的item,以实现一个流畅的用户体验。 一、ListView的基本使用 1. XML布局:在布局文件中创建ListView,并为其指定id,例如`android:id="@+id/list_view"`。 2. 数据源:...
本教程将重点讲解如何在ListView中实现下拉刷新和动态加载数据的功能,同时处理图文混排的问题。 首先,我们要引入SwipeRefreshLayout库,它是Android SDK提供的一个下拉刷新框架。在`build.gradle`文件中添加以下...
在ListView中,不是一次性加载所有数据,而是只加载屏幕可见的部分,当用户滚动时,再按需加载更多数据。这样可以减少内存消耗,提高应用启动速度,尤其是处理大数据集时。 实现ListView动态加载通常有两种方法: ...
本示例重点介绍了如何在后台动态地绑定ListView的数据源,以及如何通过代码添加行和列。这将帮助开发者更好地理解WPF中的数据绑定和ListView的使用。 首先,`ListView`的数据源通常是通过`ItemsSource`属性来设置的...
然后清空adapter,添加过滤后的数据,并调用`notifyDataSetChanged`通知ListView数据已改变,从而实现动态更新。 这就是如何在Android中根据EditText搜索框动态显示ListView数据的基本步骤。使用SimpleAdapter可以...
ListView是Android平台中一个常用的控件,用于展示大量的数据列表,尤其在数据量大到无法一次性加载全部内容时,动态加载listitem(也称为“懒加载”)就显得尤为重要。这种技术可以显著提高应用的性能,减少内存...
在Android的ListView中,动态加载(Lazy Loading)是指只在需要时加载数据,而不是一次性加载所有数据到内存中。这样可以避免一次性加载大量数据导致的内存消耗和应用卡顿。通常,我们采用Adapter与ListView结合,当...