android listview分页
来源:互联网 发布:三益钢琴js 600na图片 编辑:程序博客网 时间:2024/05/17 07:16
先看下目录结构
实现效果
创建TitleBean.java
public class TitleBean { int imgId; String content; public int getImgId() { return imgId; } public void setImgId(int imgId) { this.imgId = imgId; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } @Override public String toString() { return "TitleBean{" + "imgId=" + imgId + ", content='" + content + '\'' + '}'; }}
MyAdapter.java
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;/** * Created by Administrator on 2016/5/28. */public class MyBaseAdapter extends BaseAdapter { private ArrayList <TitleBean>list; private Context context; public MyBaseAdapter(ArrayList<TitleBean> list,Context context) { this.list = list; this.context=context; } public void onDateChange(ArrayList<TitleBean> list) { this.list = list; this.notifyDataSetChanged(); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { TitleBean bean= (TitleBean) getItem(position); ViewHoder hoder; View view=null; if (convertView==null){ view= LayoutInflater.from(context).inflate(R.layout.item,null); hoder=new ViewHoder(); hoder.TitleimgId= (ImageView) view.findViewById(R.id.img); hoder.Titlecontent= (TextView) view.findViewById(R.id.et_content); view.setTag(hoder); }else { view=convertView; hoder= (ViewHoder) view.getTag(); } hoder.TitleimgId.setImageResource(bean.getImgId()); hoder.Titlecontent.setText(bean.getContent()); return view; } private class ViewHoder{ ImageView TitleimgId; TextView Titlecontent; }}
MyListView.java
import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.AbsListView;import android.widget.ListView;/** * Created by Administrator on 2016/5/28. */public class LoadListView extends ListView implements ListView.OnScrollListener { View footer;// 底部布局; int totalItemCount;// 总数量; int lastVisibleItem;// 最后一个可见的item; boolean isLoading;// 正在加载; ILoadListener iLoadListener; public LoadListView(Context context) { super(context); // TODO Auto-generated constructor stub initView(context); } public LoadListView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub initView(context); } public LoadListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub initView(context); } /** * 添加底部加载提示布局到listview * * @param context */ private void initView(Context context) { LayoutInflater inflater = LayoutInflater.from(context); footer = inflater.inflate(R.layout.load_more, null); footer.findViewById(R.id.load_layout).setVisibility(View.GONE); this.addFooterView(footer); this.setOnScrollListener(this); } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub this.lastVisibleItem = firstVisibleItem + visibleItemCount; this.totalItemCount = totalItemCount; } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub if (totalItemCount == lastVisibleItem && scrollState == SCROLL_STATE_IDLE) { if (!isLoading) { isLoading = true; footer.findViewById(R.id.load_layout).setVisibility( View.VISIBLE); // 加载更多 iLoadListener.onLoad(); } } } /** * 加载完毕 */ public void loadComplete(){ isLoading = false; footer.findViewById(R.id.load_layout).setVisibility( View.GONE); } public void setInterface(ILoadListener iLoadListener){ this.iLoadListener = iLoadListener; } //加载更多数据的回调接口 public interface ILoadListener{ void onLoad(); }}
MainActivity.java
import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements LoadListView.ILoadListener { private LoadListView mListView; private ArrayList list = new ArrayList(); MyBaseAdapter adapter; private int[] titleArr = new int[]{R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher , R.mipmap.ic_launcher, R.mipmap.ic_launcher }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (LoadListView) findViewById(R.id.lv); loadData(); showListView(list); } private void showListView(ArrayList<TitleBean> list) { if (adapter == null) { mListView = (LoadListView) findViewById(R.id.lv); mListView.setInterface(this); adapter = new MyBaseAdapter(list, this); mListView.setAdapter(adapter); } else { adapter.onDateChange(list); } } public void loadData() { for (int i = 0; i < titleArr.length; i++) { TitleBean bean = new TitleBean(); bean.setImgId(titleArr[i]); bean.setContent("i am " + i + " content"); list.add(bean); } } public void loadMoreData() { for (int i = 0; i < 10; i++) { TitleBean bean = new TitleBean(); bean.setImgId(titleArr[i]); bean.setContent("i am " + "new content"); list.add(bean); } } @Override public void onLoad() { Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub //获取更多数据 loadMoreData(); //更新listview显示; showListView(list); //通知listview加载完毕 mListView.loadComplete(); } }, 2000); }}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.edu.listviewtest.MainActivity"> <com.example.edu.listviewtest.LoadListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lv"> </com.example.edu.listviewtest.LoadListView></RelativeLayout>
item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:src="@mipmap/ic_launcher" android:layout_width="50dp" android:layout_height="50dp" /> <TextView android:id="@+id/et_content" android:gravity="center_horizontal" android:textSize="20sp" android:text="aaaaa" android:layout_width="match_parent" android:layout_height="50dp" /></LinearLayout>
load_more.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="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/load_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:paddingBottom="10dip" android:paddingTop="10dip" > <ProgressBar style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正在加载..." /> </LinearLayout></LinearLayout>
0 0
- android listview 分页
- android ListView分页显示
- android ListView分页处理
- android listview分页
- Android ListView分页显示
- Android ListView 分页加载
- android listView滚动分页
- android listview分页
- Android ListView 滑动分页
- Android ListView分页显示
- android listview分页
- android ListView分页加载
- Android中ListView的分页--自定义ListView
- Android一个listview分页实例
- Android listview分页加载内容
- Android中ListView分页处理
- android listview的分页加载
- android ListView 数据分页加载
- 蓝牙nrf51822空中升级
- Uva 227 Puzzle
- Hello CSDN
- 基因数据处理35之使用samtools和bcftools进行变异分析2--连续处理
- 敏捷开发之Scrum扫盲篇
- android listview分页
- oracle_2 表和约束
- linux的一些小问题
- 后缀数组
- 图像处理需要哪些基础知识
- Duilib学习笔记《05》— 消息响应处理
- .com域名到期 续费期和偿还期有什么区别?
- Guava之Objects
- 【一天一道LeetCode】#69. Sqrt(x)