android listView 分批加载
来源:互联网 发布:c语言教程视频 编辑:程序博客网 时间:2024/04/29 19:26
当我们浏览空间到末尾时,数据它会自己加载或者需要我们点击按钮之类的继续加载新的数据。下面我们就介绍如何在ListView中实现数据的分批次加载。
首先创建一个布局文件foot.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="40dp"android:orientation="horizontal" ><Buttonandroid:id="@+id/bt_load"android:layout_width="wrap_content"android:layout_height="match_parent"android:gravity="center_vertical"android:text="加载更多数据" /><ProgressBarandroid:id="@+id/pg"android:layout_weight="1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/></LinearLayout>xml文件创建成功后我们来看下代码public class MainActivity extends Activity {public static ListView listView;AdapterTest adapterTest;public static View foot;private Boolean isBoolean = false;private Button Btn;private ProgressBar progressBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);foot = getLayoutInflater().inflate(R.layout.list_foot, null);progressBar = (ProgressBar) foot.findViewById(R.id.pg);Btn = (Button) foot.findViewById(R.id.bt_load);//手动加载时需要设置progressBar.setVisibility(View.GONE);listView = (ListView) findViewById(R.id.android_listTest);adapterTest = new AdapterTest(this);listView.addFooterView(foot);listView.setAdapter(adapterTest);//手动加载时设置的监听Btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {progressBar.setVisibility(View.VISIBLE);adapterTest.handler.postDelayed(new Runnable() {@Overridepublic void run() {adapterTest.handler.sendEmptyMessage(0);progressBar.setVisibility(View.GONE);}}, 2000);}});listView.setOnScrollListener(new OnScrollListener() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {Log.d("onScroll", (listView.getCount() - 1)+ "firstVisibleItem="+ (firstVisibleItem + visibleItemCount - 1));//实现自动加载/*if (listView.getCount() - 1 == (firstVisibleItem+ visibleItemCount - 1)) {if (isBoolean) {adapterTest.handler.postDelayed(new Runnable() {@Overridepublic void run() {adapterTest.handler.sendEmptyMessage(0);}}, 2000);isBoolean = false;return;}} else {isBoolean = true;}*/}});}}
适配器AdapterTest.java文件:
public class AdapterTest extends BaseAdapter {private ArrayList<String> strings;private Context mContext;//设置ListView加载最大条目private int max = 55;public AdapterTest(Context context) {strings = new ArrayList<String>();this.mContext = context;setStrigs(0, 20);}private void setStrigs(int start, int length) {if (start < max - 1) {if (start + length <= max) {for (int i = start; i < start + length; i++) {strings.add("项目" + (i + 1));}this.notifyDataSetChanged();} else if (start + length > max) {for (int i = start; i <max; i++) {strings.add("项目" + (i + 1));}this.notifyDataSetChanged();MainActivity.listView.removeFooterView(MainActivity.foot);}}else if (start == max ) {Toast.makeText(mContext, "无数据啦", 1).show();}}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn strings.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {TextView view = new TextView(mContext);view.setTextSize(20);view.setText(strings.get(position));return view;}public Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {setStrigs(strings.size(), 10);};};
}
0 0
- android listView 分批加载
- Android ListView 实现分批加载
- Android初学之listView分批加载数据
- android中listview分批加载数据
- Android:ListView数据的分批加载
- 32-listview分批加载
- ListView的分批加载
- ListView分批加载数据
- ListView分批加载数据
- android Listview分批加载+自动加载(附源码下载)
- android中OnScrollListener的详解(Listview分批加载用到)
- Android中OnScrollListener的详解(Listview分批加载用到)
- Android中OnScrollListener的详解(Listview分批加载用到)
- Android中OnScrollListener的详解(Listview分批加载用到)
- Android中OnScrollListener的详解(Listview分批加载用到)
- Android中OnScrollListener的详解(Listview分批加载用到
- ListView的分批加载数据
- 安卓中listview分批加载数据
- STC15F104E的STC单片机自动下载系统设计
- java-struts2 第二章
- Sicily 1046. Plane Spotting
- 电脑基本常识
- hdu 3874
- android listView 分批加载
- 正则表达式通用语法
- 试试看插入代码的功能,代码为递归实现的组合和全排序
- Android_Handler引起的内存泄露
- Linux命令--chmod
- 深度学习开放实验室-试用版发布
- Redis中文API
- 【设计原则01】KISS(Keep It Simple,Stupid),懒人原则
- 注解