- 浏览: 60558 次
- 性别:
- 来自: 南京
最新评论
-
cuixuelei:
图形中RChart Demo 字样,怎么去掉
android饼状图表 -
Mr.Cheney:
代码太乱了
gallery加载大量图片时内存溢出的解决方法(一) -
ygswine:
最后一点是否可以在发送QQ邮箱,成功后程序关闭,在Activi ...
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(获取联系人和电话号码、通话记录) -
zxuenet:
erwin_king 写道因为这个时收费的,所以会有的demo ...
android饼状图表 -
mvpstevenlin:
博主,麻烦发一份我学习吧 1577360984@qq.com, ...
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(获取联系人和电话号码、通话记录)
我们在使用listview时难免会遇到分页的情况,既然是分页,那么能给用户看见分页的情况,无疑让用户在等待下一页数据的时候会有好处的,如果获取下一页时间过久的话,用户会觉得好像死机了,这样就会给用户一个不好的体验,下面我就来实现在listview分页是现实进度条,由于这个效果的要求不高,我只使用了很简单的方式来实现,高手莫笑哦!
1、首先便是xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main" android:orientation="vertical"
android:background="@drawable/mainapp_ic_bg" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:gravity="center_horizontal" android:layout_above="@+id/main_progessbar" android:layout_alignParentTop="true"
android:orientation="vertical" android:id="@+id/top" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="学习" android:background="@drawable/com_ttb_1l_bg"
android:id="@+id/main_title"
android:layout_width="fill_parent" android:gravity="center"
android:layout_height="wrap_content" android:textSize="18dip"
android:textColor="@color/white" android:visibility="gone"/>
<ListView android:id="@+id/main_listview" android:layout_below="@+id/main_title" android:cacheColorHint="#00000000"
android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView>
</LinearLayout>
<LinearLayout android:gravity="center" android:layout_alignParentBottom="true"
android:background="@color/black" android:id="@+id/main_progessbar" android:layout_width="fill_parent"
android:visibility="gone" android:layout_height="wrap_content" >
<ProgressBar android:layout_width="wrap_content"
android:layout_height="wrap_content"></ProgressBar>
<TextView android:text="加载中..." android:layout_width="wrap_content"
android:paddingLeft="10dip" android:gravity="center" android:layout_height="fill_parent"></TextView>
</LinearLayout>
</RelativeLayout>
2、activity类
public class ListView_ProgressBar extends Activity implements OnScrollListener {
int lastItem = 0;
int mProgressStatus = 0;
private Handler mHandler = new Handler();
ProgressBar progressBar;
MyAdapter myAdapter;
List<String> str = new ArrayList<String>();
int pageNo = 1;
ListView listview;
int totalPage = 10;
int totalRecord = 200;
LinearLayout main_progessbarn;
private boolean isScrolling = false;
int now = 0;
boolean isPagination = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
main_progessbarn = (LinearLayout)findViewById(R.id.main_progessbar);
listview = (ListView) findViewById(R.id.main_listview);
for (int i = 0; i < 15; i++) {
str.add("条目内容" + (pageNo-1)*20+i);
}
myAdapter = new MyAdapter(ListView_ProgressBar.this, str);
listview.setAdapter(myAdapter);
listview.setOnScrollListener(this);
}
public void onScroll(AbsListView v, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
lastItem = firstVisibleItem + visibleItemCount - 1;
System.out.println("lastItem:" + lastItem);
}
public void onScrollStateChanged(AbsListView v, int state) {
if (lastItem == str.size()-1
&& state == OnScrollListener.SCROLL_STATE_IDLE) {
pageNo++;
if (pageNo <= totalPage) {
ccc(pageNo);
}
}
}
private void ccc(final int pageNo){
main_progessbarn.setVisibility(View.VISIBLE);
new Thread() {
public void run() {
getStringList(pageNo);
mHandler.post(refreshAdapter);
}
}.start();
}
private Runnable refreshAdapter = new Runnable() {
public void run() {
myAdapter.notifyDataSetChanged();
main_progessbarn.setVisibility(View.GONE);
}
};
public void getStringList(int pageNo) {
for (int i = 0; i < 10000; i++) {
str.add("条目内容" + (pageNo-1)*20+i);
}
}
}
3、listview适配器
public class MyAdapter extends BaseAdapter {
Context context;
List<String> list;
LayoutInflater lif;
public MyAdapter(Context context, List<String> list,) {
this.context = context;
this.list = list;
}
public int getCount() {
if (list != null) {
return list.size();
} else {
return 0;
}
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
// mHandler.post(mScrollToButton);//传�?�?��消息进行滚动
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final MyView mv;
if (convertView == null) {
mv = new MyView();
lif = LayoutInflater.from(context);// 转化到context这个容器
convertView = lif.inflate(R.layout.main_item, null);// 设置要转化的layout文件
} else {
mv = (MyView) convertView.getTag();
}
mv.tv1 = (TextView) convertView.findViewById(R.id.main_listview_item);// 取得实例
System.out.println("条目内容" + list.get(position));
mv.tv1.setText(list.get(position));
if ((position % 2) == 0) {
convertView.setBackgroundResource(R.drawable.com_list_bg_d);
} else {
convertView.setBackgroundResource(R.drawable.com_list_bg_s);
}
convertView.setTag(mv);
return convertView;
}
private static class MyView {
TextView tv1;
}
}
发表评论
-
android 使用des算法
2012-02-09 12:52 1965转自:http://www.linuxidc.com/Linu ... -
Toast显示图片
2012-02-02 12:56 1465转自:http://blog.csdn.net/ling ... -
文字中间加横线效果
2012-02-02 11:00 1913priceTV.setText("价格:2.00 ... -
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(apn操作)
2011-11-08 12:51 1379static Uri uri = Uri.parse(&qu ... -
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(gps操作)
2011-11-08 12:48 1582public static String getCityNam ... -
开机实现将手机联系人、通话记录、手机号码、手机所在地、发送到指定邮箱里,失败则发送短信到指定手机之(获取联系人和电话号码、通话记录)
2011-11-08 12:46 3047首先声明者只是一个个 ... -
Android Activity界面切换添加动画特效
2011-06-14 13:48 1212在Android 2.0之后有了overridePending ... -
android 权限介绍(二)
2011-06-02 17:08 1014SYSTEM_ALERT_WINDOW 允许 ... -
android 权限介绍(一)
2011-06-02 17:00 832Manifest.permission 这个类定义了andro ... -
编写高效的Android代码(提高运行速度,节省电量)
2011-06-02 16:28 1337编写高效的Android代码( ... -
[整理]Selector、shape详解
2011-06-02 15:15 4199Selector、shape详解(一) Selector的结 ... -
[转帖]Android自定义Activity漂亮跳转效果
2011-05-31 20:10 1284Android自定义Activity漂亮跳转效果 ... -
gallery加载大量图片时内存溢出的解决方法(三)
2011-05-31 19:14 20316、ImageAdapter public class Im ... -
gallery加载大量图片时内存溢出的解决方法(二)
2011-05-31 18:56 2563Paint deafalutPaint = new Paint ... -
gallery加载大量图片时内存溢出的解决方法(一)
2011-05-31 18:55 4483这只是我以前开始搞android事留下的代码,发现还是存在问题 ... -
ListView学习(三) 加载视野内的数据
2011-05-31 17:13 1781在滑动的过程中,只有在视野中的item才会加载数据,其他的其实 ... -
ListView学习(二) 点击条目隐藏展开正文
2011-05-28 00:00 3826本篇是listview条目点击展开或者隐藏内容,本文参照了an ... -
[整理] 操作通话记录(一)
2011-05-25 11:31 1884/* *为了方便后面页面的封装,这里定义了一个实体类 ... -
[整理] 操作通话记录(二)
2011-05-25 11:25 1122//处理时间 public String for ... -
android饼状图表
2011-05-15 15:12 4183相信图表再很多统计应 ...
相关推荐
滑动分页技术是当用户滚动到底部时,自动加载更多数据的功能,这在处理大量数据时非常实用,可以提高用户体验并节省流量。本篇文章将详细讲解如何实现Android ListView的滑动分页功能。 首先,理解滑动分页的基本...
4. **显示加载状态**:在ListView底部添加一个进度条或者提示文字,显示加载中的状态。当数据加载完成,隐藏加载指示器,显示新加载的数据。 点击分页加载则是在用户点击某项后,加载与该项相关的更多数据。这个...
其次,滑动到底部自动增加更多,也称为无限滚动,目的是在用户接近ListView底部时加载更多的数据,模拟无边界的效果。实现这一功能需要监听ListView的滚动事件,并判断是否达到加载新数据的条件。以下是一般实现过程...
"android listview滑动到底部加载数据"这个主题涉及到一个常见的功能需求:无限滚动或称为“上拉加载更多”。这种设计模式允许用户在滚动到ListView底部时动态加载更多的内容,从而提供更好的用户体验,避免一次性...
滑动分页加载数据是一种常见的用户界面设计技术,尤其在移动设备的应用程序中非常常见。这种技术主要用于提高用户体验,因为它允许用户浏览大量信息时无需等待整个数据集一次性加载完成,而是仅在用户滚动到页面底部...
在实际应用中,为了优化用户体验,我们常常需要在用户滚动到底部时动态加载更多的数据,这种功能通常被称为“无限滚动”或“下拉刷新、上拉加载”。本教程将深入探讨如何在ListView中实现“底部加载更多”的功能。 ...
上拉加载更多功能允许用户滚动到底部时加载更多数据,以分页形式展示大量数据。实现过程如下: 1. **监听滚动事件**:可以通过ListView的`OnScrollListener`监听滚动状态,特别关注`SCROLL_STATE_IDLE`(停止滚动)...
5. 滑动监听:通常需要监听ListView的OnScrollListener,以便在用户滚动到底部时触发数据加载。 结合提供的文件"ListViewLoadDemo",这可能是一个示例代码,展示了如何在ListView中实现分页加载。通过阅读和分析这...
2. **加载更多数据**:当检测到用户滚动到底部时,向服务器请求更多数据。 3. **添加数据到列表**:收到新数据后,将其添加到现有数据集,并调用Adapter的notifyDataSetChanged()方法通知ListView数据已更新。 4. ...
"滑动listview加载更多数据"这一功能,就是针对这种需求设计的,它使得用户在浏览至列表底部时能自动触发加载更多数据的机制,提升了用户体验。 1. **滑动监听事件**: ListView提供了OnScrollListener接口,用于...
2. **页面滑动**:如果数据量大,分页加载时,每次滚动到新的页面底部,可能会触发新的数据请求,这时也可以利用进度条来表示加载新数据的过程。 实现这些功能,开发者可能使用了异步任务(AsyncTask)或者Retrofit...
首先,下拉刷新功能允许用户通过向下滑动ListView顶部来更新列表内容,通常显示一个刷新指示器,如旋转的箭头或进度条,当数据加载完成则自动恢复到原始状态。这种交互设计让用户知道后台正在加载新数据,并提供了一...
我们可以利用SwipeRefreshLayout作为容器包裹ListView,当用户在底部向上滑动时,会触发SwipeRefreshLayout的刷新动作。在监听器OnRefreshListener中,你需要实现加载更多数据的方法,通常通过网络请求或者本地数据...
在示例中,开发者可能会先初始化20条数据,然后在ListView滑动到底部时,向服务器发送请求获取额外的20条数据。这个过程通常使用异步任务(AsyncTask)或者Retrofit、OkHttp等网络库来处理,以避免阻塞主线程。获取...
SwipeRefreshLayout包含一个可以滑动的容器,当用户下拉时,它会显示一个刷新指示器,同时触发一个回调,让应用程序加载新数据。在这个回调中,可以调用`getListNews`方法获取下一页数据,然后添加到ListView的...
分页加载(Pagination)则用于优化用户体验,避免一次性加载大量数据导致的性能问题,它允许用户滚动到列表底部时动态加载更多数据。 在"Android头部停留及分页加载功能整合列表"项目中,开发者可能采用了`...
"listview下拉加载更多"的功能是为了提高用户体验,让用户能够在滚动到底部时自动加载更多数据,而无需手动翻页。这种功能通常被称为无限滚动或者下拉刷新。下面将详细介绍如何在不自定义ListView的情况下实现这一...
- 在ListView底部添加一个“加载更多”的占位视图,当需要加载更多数据时显示,加载完毕后隐藏。 6. **优化用户体验**: - 可以使用诸如SwipeRefreshLayout这样的库实现下拉刷新功能,让用户可以轻松地刷新列表。...
与下拉刷新类似,上拉加载更多是当用户滚动到列表底部时,加载更多的数据。这个功能在大数据量的列表中尤其有用,避免一次性加载所有数据导致内存消耗过大。实现上拉加载更多通常需要以下步骤: 1. 监听ListView的...
在XListView中,当用户滚动到列表底部时,会自动触发OnLoadMoreListener的回调,开发者在此回调中实现加载更多数据的逻辑。 在仿制新浪微博客户端的过程中,还需要考虑以下几点: 1. 数据分页:为了优化性能,通常...