`

Android基础 为listView增加更多按钮(分页显示)

 
阅读更多
package com.su.morebutton;


import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;


public class TestListViewGetMoreButtonActivity extends Activity {
	private LinearLayout home_more;
	private TextView home_tvmore;
	private LinearLayout loading;
	private ListView home_ListView;
	private SimpleAdapter simpleAdapter;
	private ArrayList<HashMap<String, String>> mylist;


	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		home_more = (LinearLayout) LayoutInflater.from(
				TestListViewGetMoreButtonActivity.this).inflate(
				R.layout.list_more, null);
		home_tvmore = (TextView) home_more.findViewById(R.id.more_tv);
		loading = (LinearLayout) home_more.findViewById(R.id.loading);
		loading.setVisibility(View.GONE);
		home_ListView = (ListView) findViewById(R.id.listView1);
		home_ListView.addFooterView(home_more, null, false);//增加那个 更多按钮
		home_tvmore.setOnClickListener(new View.OnClickListener() {


			@Override
			public void onClick(View v) {
				home_tvmore.setVisibility(View.GONE);
				loading.setVisibility(View.VISIBLE);
				run = true;
				Thread thread = new Thread(new ThreadDemo());//开启获取新数据的线程
				thread.start();


			}
		});


		// 初始化listview
		mylist = new ArrayList<HashMap<String, String>>();


		for (int i = 0; i < 7; i++) {
			HashMap<String, String> map = new HashMap<String, String>();
			map.put("ItemTitle", "This is Title.....");
			map.put("ItemText", "This is text.....");
			mylist.add(map);
		}


		simpleAdapter = new SimpleAdapter(this, mylist, R.layout.item,
				new String[] { "ItemTitle", "ItemText" }, new int[] {
						R.id.ItemTitle, R.id.ItemText });
		home_ListView.setAdapter(simpleAdapter);


	}


	Handler endSessionHandle = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			finish();
		}
	};
	private boolean run = true;


	class ThreadDemo implements Runnable {
		Message msg = handle.obtainMessage();


		public void run() {
			while (run) {
				msg.obj = getDate();
				msg.what = 1;
				handle.sendMessage(msg);
				run = false;
			}
		}


	}


	Handler handle = new Handler() {
		@SuppressWarnings("unchecked")
		public void handleMessage(Message msg) {


			if (msg.what == 1) {
				Log.e("测试", "");
				mylist.addAll((ArrayList<HashMap<String, String>>) msg.obj);
				simpleAdapter.notifyDataSetChanged();
				home_tvmore.setVisibility(View.VISIBLE);// 再次回到以前状态
				loading.setVisibility(View.GONE);
			}
		}
	};


	/**
	 * 获取list的数据一般是来自网络
	 */
	private ArrayList<HashMap<String, String>> getDate() {
		ArrayList<HashMap<String, String>> newList = new ArrayList<HashMap<String, String>>();
		try {


			for (int i = 0; i < 5; i++) {


				// 执行的增加数据方法


				HashMap<String, String> map = new HashMap<String, String>();
				map.put("ItemTitle", "Added Title.....");
				map.put("ItemText", "added text.....");
				newList.add(map);


				if (i == 4) {


				}
				Thread.sleep(500);
			}


		} catch (Exception e) {
			e.printStackTrace();
			Log.e("WeiboPub", e.getMessage());
		}
		return newList;
	}
}


http://dl.vmall.com/c0jnos5z6k


分享到:
评论

相关推荐

    Android ListView分页功能源码

    Android SDK提供了一个AbsListView.OnScrollListener接口,我们可以为ListView设置该监听器,通过实现`onScrollStateChanged()`和`onScroll()`方法来判断是否已经滚动到底部。例如,当滚动状态改变且最后一条数据...

    Android ListView 滑动分页

    滑动分页技术是当用户滚动到底部时,自动加载更多数据的功能,这在处理大量数据时非常实用,可以提高用户体验并节省流量。本篇文章将详细讲解如何实现Android ListView的滑动分页功能。 首先,理解滑动分页的基本...

    ListView分页显示上一页和下一页

    1. 加载指示器:在加载更多数据时,显示一个加载指示器,如ProgressBar,告诉用户数据正在加载。 2. 错误处理:处理加载失败的情况,如显示错误提示,提供重试功能。 3. 懒加载:首次加载数据时,只加载第一屏,滚动...

    Android里ListView分页加载数据

    2. Load More Button:除了自动加载,还可以提供一个“加载更多”按钮,让用户手动触发加载。 3. Pagination Size:合理设置每页加载的数据量,过多可能会导致性能问题,过少则可能频繁触发加载。 4. DiffUtil:...

    ListView分页加载更多

    7. **错误处理和重试机制**:在网络请求失败时,应有相应的错误处理机制,例如显示错误信息,提供重试按钮让用户重新尝试加载更多数据。 8. **数据缓存策略**:为了提高性能,可以考虑在内存或本地存储中缓存已加载...

    android按钮分页与滑动分页

    本篇文章将深入探讨Android中的按钮分页与滑动分页机制。 一、按钮分页 按钮分页通常涉及在底部或顶部设置“上一页”和“下一页”的按钮,用户点击这些按钮来切换页面。实现这种分页的方法通常包括以下步骤: 1. ...

    android listView 模拟物理分页Demo 按键

    总的来说,这个Demo提供了一个基础的ListView分页实现,通过按键控制加载更多数据。对于新手来说,理解并实践这个例子有助于掌握Android中数据列表的分页加载,为进一步提升用户体验打下基础。同时,学习如何集成...

    android ListView分页加载Demo

    6. **错误处理**:处理网络请求失败的情况,如显示错误信息,提供重试按钮,或者允许用户手动触发加载更多。 博客链接(http://blog.csdn.net/wild46cat/article/details/52620370)可能提供了更详细的实现步骤和...

    listview分页 -- 底部加载更多

    综上所述,实现ListView的分页加载“底部加载更多”功能,不仅涉及到了ListView的基本使用,还包括了事件监听、异步加载、数据处理和用户交互等多个方面,这些知识点都是Android开发中不可或缺的部分。在实际项目中...

    Android高级应用源码-Listview分页加载数据.zip

    - ** footerview**:在ListView底部添加一个“加载更多”视图,作为列表的一部分,当需要加载下一页数据时,显示加载状态。 - **异步加载**:为了不阻塞主线程,分页加载通常在子线程中执行,通过AsyncTask或其他...

    Android ListView 分页

    1. EndlessScrolling:当数据源有无限数据时,可以实现EndlessScrolling,即用户滚动到底部时自动加载下一页,无需手动点击加载更多按钮。 2. Load More Button:对于有限数据,可以在到达底部时显示“加载更多”...

    android listView 分页

    可以在“加载更多”视图中添加一个“重试”按钮,或者显示错误消息。 六、优化与性能 1. 使用ViewHolder优化 为提高ListView的滚动性能,需实现ViewHolder模式,减少视图对象的创建和查找。 2. 数据缓存 可以将已...

    Android自制带刷新的ListView

    1. 创建一个自定义的ListView,继承自Android的AbsListView或ListView类,增加必要的刷新和加载更多逻辑。 2. 实现滑动监听器,例如使用OnScrollListener,检测用户滚动到底部或顶部的事件。 3. 设计并实现刷新动画...

    android自定义分页控件

    一个基本的分页控件通常包括页码显示、加载更多按钮以及可能的刷新功能。可以使用XML布局文件来定义这些元素,如ImageView用于图标,TextView用于页码显示,Button用于触发加载更多操作。在布局文件中,记得为这些...

    Android ListView分页功能源码.rar

    这个"Android ListView分页功能源码"的压缩包提供了实现ListView分页加载的示例代码,这对于优化用户界面和提升性能至关重要。分页加载可以减少一次性加载大量数据的需求,从而避免内存消耗过大和应用卡顿。 首先,...

    查询Sqlite分页显示在ListView里

    此外,对于用户体验的提升,我们可以在ListView中加入下拉刷新和上拉加载更多功能。这可以通过集成诸如SwipeRefreshLayout和RecyclerView等更现代的组件来实现。使用RecyclerView时,配合使用LinearLayoutManager和...

    异步加载网络资源并分页显示在ListView中

    分页通常通过“加载更多”按钮或“上拉刷新”来实现。开发者需要维护一个页码或游标来追踪加载的数据。网络请求参数中需包含当前页信息,服务器返回对应页的数据。此外,可以利用“无限滚动”效果,当用户接近...

    ListView自定义,优化,分页的实现

    在Android开发中,ListView是一个非常常见且重要的组件,它用于展示大量的数据列表,例如联系人、消息等。本文将深入探讨如何对ListView进行自定义、优化以及实现分页功能。 一、ListView自定义 1. 自定义适配器:...

    android listview 实例demo

    ListView是一个可滚动的视图,它可以在单个屏幕上显示多个行数据,并允许用户滚动浏览更多内容。ListView通常与Adapter类一起使用,Adapter是连接数据源(如数组或数据库查询结果)和ListView之间的桥梁。Adapter将...

    Android studio listview实现列表数据显示 数据循环显示效果

    本文将详细介绍 Android Studio 中 ListView 的实现列表数据显示和循环显示效果,帮助开发者更好地掌握 ListView 的使用和应用。 ListView 的基本概念 ListView 是 Android 中的一个控件,用于显示大量数据的列表...

Global site tag (gtag.js) - Google Analytics