手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android实现滑动加载数据的方法
Android实现滑动加载数据的方法
摘要:本文实例讲述了Android实现滑动加载数据的方法。分享给大家供大家参考。具体实现方法如下:EndLessActivity.java如下:p...

本文实例讲述了Android实现滑动加载数据的方法。分享给大家供大家参考。具体实现方法如下:

EndLessActivity.java如下:

package com.ScrollListView; import Android.app.ListActivity; import Android.os.Bundle; import Android.view.Gravity; import Android.view.View; import Android.view.ViewGroup; import Android.widget.AbsListView; import Android.widget.BaseAdapter; import Android.widget.LinearLayout; import Android.widget.ProgressBar; import Android.widget.TextView; import Android.widget.AbsListView.OnScrollListener; public class EndLessActivity extends ListActivity implements OnScrollListener { Aleph0 adapter = new Aleph0(); int mProgressStatus = 0 ; ProgressBar progressBar; protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); LinearLayout searchLayout = new LinearLayout( this ); searchLayout.setOrientation(LinearLayout.HORIZONTAL); progressBar = new ProgressBar( this ); progressBar.setPadding( 0 , 0 , 15 , 0 ); searchLayout.addView(progressBar, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT )); TextView textView = new TextView( this ); textView.setText( " 加载中... " ); textView.setGravity(Gravity.CENTER_VERTICAL); searchLayout.addView(textView, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT )); searchLayout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout( this ); loadingLayout.addView(searchLayout, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT )); loadingLayout.setGravity(Gravity.CENTER); getListView().addFooterView(loadingLayout); setListAdapter(adapter); getListView().setOnScrollListener( this ); } public void onScroll(AbsListView view, int firstVisible, int visibleCount, int totalCount) { boolean loadMore = /* maybe add a padding */ firstVisible + visibleCount >= totalCount; if (loadMore) { adapter.count += visibleCount; // or any other amount adapter.notifyDataSetChanged(); } } public void onScrollStateChanged(AbsListView v, int s) { } class Aleph0 extends BaseAdapter { int count = 40 ; /* starting amount */ public int getCount() { return count; } public Object getItem( int pos) { return pos; } public long getItemId( int pos) { return pos; } public View getView( int pos, View v, ViewGroup p) { TextView view = new TextView(EndLessActivity. this ); view.setText( " entry " + pos); return view; } } }

listview下部是按钮控制:

package com.ScrollListView; import Android.app.ListActivity; import Android.os.Bundle; import Android.view.Gravity; import Android.view.View; import Android.view.ViewGroup; import Android.widget.AbsListView; import Android.widget.BaseAdapter; import Android.widget.Button; import Android.widget.LinearLayout; import Android.widget.ProgressBar; import Android.widget.TextView; import Android.widget.AbsListView.OnScrollListener; public class EndLessActivity extends ListActivity { Aleph0 adapter = new Aleph0(); int mProgressStatus = 0 ; protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); LinearLayout searchLayout = new LinearLayout( this ); searchLayout.setOrientation(LinearLayout.HORIZONTAL); Button textView = new Button( this ); textView.setText( " 加载中... " ); textView.setGravity(Gravity.CENTER_VERTICAL); searchLayout.addView(textView, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT )); searchLayout.setGravity(Gravity.CENTER); LinearLayout loadingLayout = new LinearLayout( this ); loadingLayout.addView(searchLayout, new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT )); loadingLayout.setGravity(Gravity.CENTER); getListView().addFooterView(loadingLayout); textView.setOnClickListener( new Button.OnClickListener() { @Override public void onClick(View v) { adapter.count += 10 ; adapter.notifyDataSetChanged(); } }); setListAdapter(adapter); // getListView().setOnScrollListener(this); } /* public void onScroll(AbsListView view, int firstVisible, int visibleCount, int totalCount) { boolean loadMore = firstVisible + visibleCount >= totalCount; if(loadMore) { adapter.count += visibleCount; adapter.notifyDataSetChanged(); } } */ public void onScrollStateChanged(AbsListView v, int s) { } class Aleph0 extends BaseAdapter { int count = 40 ; /* starting amount */ public int getCount() { return count; } public Object getItem( int pos) { return pos; } public long getItemId( int pos) { return pos; } public View getView( int pos, View v, ViewGroup p) { TextView view = new TextView(EndLessActivity. this ); view.setText( " entry " + pos); return view; } } }

希望本文所述对大家的Android程序设计有所帮助。

【Android实现滑动加载数据的方法】相关文章:

Android设置桌面背景图片的实现方法

android之计时器(Chronometer)的使用以及常用的方法

Android列表实现(2)_游标列表案例讲解

在Android中访问WebService接口的方法

android真机调试时无法显示logcat信息的解决方法介绍

Android控件之ToggleButton的使用方法

Android 开机启动慢的原因分析

Android开发之实现手指直接拖动图片移动

Android仿即刻首页垂直滚动图

Android中打电话的数据流程分析

精品推荐
分类导航