android分页处理-2

本文介绍了一种基于Android平台的分页数据加载方法,通过自定义的分页适配器(PaginationAdapter)实现了列表数据的懒加载及更多数据的加载功能。该适配器能够有效地管理大量新闻条目数据,当用户滚动到列表底部时,自动加载新的数据项,提升了用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private void initializeAdapter()
{
List<News> news = new ArrayList<News>();
for(int i = 1; i <= 10; i++)
{
News items = new News();
items.setTitle("Title"+i);
items.setContent("This is News Content"+i);
news.add(items);
}
paging_adapter = new PaginationAdapter(news);
}

private void disposeLoadItems()
{
load_more_item = (Button)load_more_view.findViewById(R.id.loadMoreButton);
load_more_item.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
load_more_item.setText("正在加载中...");
handler.postDelayed(new Runnable()
{
@Override
public void run()
{
loadMoreData();
paging_adapter.notifyDataSetChanged();
load_more_item.setText("查看更多..."); //恢复按钮文字
}
},DELAY_TIME);
}
});
}

private void loadMoreData()
{
int count = paging_adapter.getCount();

if(count+10 <= data_size)
{
for(int i=count+1; i<=count+10; i++)
{
News item = new News();
item.setTitle("Title"+i);
item.setContent("This is News Content"+i);
paging_adapter.addNewsItem(item);
}
}
else
{
for(int i = count+1; i <= data_size; i++){
News item = new News();
item.setTitle("Title"+i);
item.setContent("This is News Content"+i);
paging_adapter.addNewsItem(item);
}
}
}

class PaginationAdapter extends BaseAdapter
{

List<News> newsItems;

public PaginationAdapter(List<News> newsitems){
this.newsItems = newsitems;
}

@Override
public int getCount() {
return newsItems.size();
}

@Override
public Object getItem(int position) {
return newsItems.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View view, ViewGroup parent)
{
if(view == null)
{
view = getLayoutInflater().inflate(R.layout.list_items, null);
}

TextView tvTitle = (TextView)view.findViewById(R.id.newstitle);
tvTitle.setText(newsItems.get(position).getTitle());

TextView tvContent = (TextView)view.findViewById(R.id.newscontent);
tvContent.setText(newsItems.get(position).getContent());

return view;
}

public void addNewsItem(News newsitem){
newsItems.add(newsitem);
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值