依赖
implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
implementation 'com.android.support:design:28.0.0' //有时导一个依赖会报错 加上这个就可以了
网络读写权限就不说了
直接看使用代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.bawei.drull_one_three.adapter.ShowAdapter;
import com.bawei.drull_one_three.bean.ShowBean;
import com.bawei.drull_one_three.mvp2.Contract;
import com.bawei.drull_one_three.mvp2.ShowPresenter;
import com.bawei.drull_one_three.ziview.souView;
import com.google.gson.Gson;
import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
public class Main4Activity extends AppCompatActivity implements Contract.ShowView {
private souView souview;
private ShowPresenter showPresenter;
String baseUrl = "http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?&count=7&keyword=1";//默认显示数据
String urll="http://172.17.8.100/small/commodity/v1/findCommodityByKeyword?page=1&count=7&keyword=";//搜索
private XRecyclerView mRecy;
private int page = 1; // 页码
List<ShowBean.ResultBean> results = new ArrayList<>();
private ShowAdapter showAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
//找控件
mRecy = findViewById(R.id.SRecyler);
souview = findViewById(R.id.souview);
//XRecyclerView管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRecy.setLayoutManager(linearLayoutManager);
//刷新样式 可不加
mRecy.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);
mRecy.setLoadingMoreProgressStyle(ProgressStyle.BallClipRotate);
//设置适配器
showAdapter = new ShowAdapter(this,results);
mRecy.setAdapter(showAdapter);
//设置刷新
mRecy.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
page = 1; // 重置页码
String urlNew = baseUrl + "&page=" +page;
showPresenter.getData(urlNew);
}
@Override
public void onLoadMore() {
page++;
String urlNew = baseUrl + "&page=" +page;
showPresenter.getData(urlNew);
}
});
//点击搜索的
souview.setItemOnclik(new souView.ItemOnclik() {
@Override
public void Callback(String text) {
String s = text.toString();//搜索框的内容
showPresenter.getData(urll+ URLEncoder.encode(s));
}
});
//实例p层
showPresenter = new ShowPresenter();
showPresenter.onAttachView(this);
String urlNew = baseUrl + "&page=" +page;
showPresenter.getData(urlNew);
}
//mvp返回回来的数据
@Override
public void getView(String data) {
Gson gson = new Gson();
ShowBean showBean = gson.fromJson(data, ShowBean.class);
final List<ShowBean.ResultBean> result = showBean.getResult();
if (result==null||result.size()==0){
Toast.makeText(Main4Activity.this, "没有数据了", Toast.LENGTH_SHORT).show();
resetRecycleViewState();
return;
}
if (page == 1) {
results.clear();
}
results.addAll(result);
showAdapter.notifyDataSetChanged();
resetRecycleViewState();
}
/**
* 重置RecycleView 刷新状态
*/
private void resetRecycleViewState() {
mRecy.refreshComplete();
mRecy.loadMoreComplete();
}
}