1.首页引入包 //引入下拉上拉控件 implementation 'com.github.userswlwork:pull-to-refresh:1.0.0'
2.在需要使用的地方替换listview控件
<friendgoods.vidic.com.generalframework.view.XListView android:id="@+id/xlistview" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" android:scrollbars="none" > </friendgoods.vidic.com.generalframework.view.XListView>
3.写入需要的信息即可
private XListView mListView; private ArrayList<String> datas; private Handler mHandler; private MainAdapter mainAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (XListView) findViewById(R.id.xlistview); mainAdapter = new MainAdapter(this); datas = new ArrayList<>(); mHandler = new Handler(); //设置数据 geneItems(); mListView.setPullLoadEnable(true); mListView.setAdapter(mainAdapter); mListView.setXListViewListener(this); //设置item的点击事件 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { //这里的i-1,是因为头视图占了一个position Toast.makeText(MainActivity.this, "i:" + (i - 1), Toast.LENGTH_SHORT).show(); } }); //设置长按事件 mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { Toast.makeText(MainActivity.this, "长按事件 i:" + (i-1), Toast.LENGTH_SHORT).show(); return false; } }); // //添加头布局 // View view = getLayoutInflater().inflate(R.layout.head_view, null); // mListView.addHeaderView(view); // //添加尾视图 // View view2 = getLayoutInflater().inflate(R.layout.head_view, null); // mListView.addFooterView(view2); //设置禁止上拉 //mListView.setPullLoadEnable(false); //设置禁止下拉 //mListView.setPullRefreshEnable(false); } private void geneItems() { for (int i = 0; i <= 20; i++) { datas.add("refresh item " + i); } mainAdapter.setDatas(datas); } //下拉刷新 @Override public void onRefresh() { mHandler.postDelayed(new Runnable() { @Override public void run() { datas.clear(); geneItems(); // mAdapter.notifyDataSetChanged(); mainAdapter = new MainAdapter(MainActivity.this); mainAdapter.setDatas(datas); mListView.setAdapter(mainAdapter); onLoad(); } }, 2000); } //上拉加载 @Override public void onLoadMore() { mHandler.postDelayed(new Runnable() { @Override public void run() { geneItems(); mainAdapter.notifyDataSetChanged(); onLoad(); } }, 2000); } private void onLoad() { mListView.stopRefresh(); mListView.stopLoadMore(); //获取当前时间 Date curDate = new Date(System.currentTimeMillis()); //格式化 SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); String time = formatter.format(curDate); mListView.setRefreshTime(time); }
对应的demo地址:https://download.csdn.net/download/as425017946/10664979
另一种写法PullToRefresh的demo:https://download.csdn.net/download/as425017946/10664987