展示列表的接口
public static final String SHOPPING_URL = “http://www.zhaoapi.cn/product/getCarts?uid=71”;
接口回调
//V层
public interface IHomeView {
//回显数据
public void showData(NewsBean repsoneData);
}
//P层
public interface IHomePresenter<IHomeView> {
//绑定
public void attahView(IHomeContract.IHomeView homeView);
//解绑
public void detachView(IHomeContract.IHomeView homeView);
//数据获取
public void requestData();
}
//M层
public interface IHomeModel {
//请求数据
public void containData(CallBack callBack);
//接口回调
public interface CallBack {
public void onCallBack(NewsBean repsoneData);
}
}
M层
public class HomeModel implements IHomeContract.IHomeModel {
@Override
public void containData(final CallBack callBack) {
OkGo.<String>get(Constant.SHOPPING_URL).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
//响应数据
String repsoneData = response.body().toString();
//Gson数据解析
Gson gson = new Gson();
NewsBean shoppingBean = gson.fromJson(repsoneData, NewsBean.class);
//接口回调进行数据回传
callBack.onCallBack(shoppingBean);
}
});
}
}
P层
public class HomePresenter implements IHomeContract.IHomePresenter<IHomeContract.IHomeView> {
IHomeContract.IHomeView homeView;
private HomeModel model;
private SoftReference<IHomeContract.IHomeView> softReference;
@Override
public void attahView(IHomeContract.IHomeView homeView) {
this.homeView = homeView;
//软引用包裹
softReference = new SoftReference<>(homeView);
//创建M层
model = new HomeModel();
}
@Override
public void detachView(IHomeContract.IHomeView homeView) {
softReference.clear();
}
@Override
public void requestData() {
model.containData(new IHomeContract.IHomeModel.CallBack() {
@Override
public void onCallBack(NewsBean repsoneData) {
homeView.showData(repsoneData);
}
});
}
}
Activity
public class ShowActivity extends AppCompatActivity implements IHomeContract.IHomeView{
@BindView(R.id.image1)
ImageView image1;
@BindView(R.id.edi_sou)
EditText ediSou;
@BindView(R.id.image2)
ImageView image2;
@BindView(R.id.recyclerView1)
RecyclerView recyclerView1;
private RecyclerView recyclerView;
private HomePresenter presenter;
private SharedPreferences com;
private List<User.DataBean> beanList;
Context context;
private ArrayList<NewsBean.DataBean> beanList1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
ButterKnife.bind(this);
recyclerView = findViewById(R.id.recyclerView);
//创建P层
presenter = new HomePresenter();
presenter.attahView( this);
//动作触发
presenter.requestData();
//点击切换
com = getSharedPreferences("isTrue", MODE_PRIVATE);
com.edit().commit();
OkGo.<String>get(Constant.GRIDEURL).execute(new StringCallback() {
private ArrayList<User.DataBean> beanList;
@Override
public void onSuccess(Response<String> response) {
String data = response.body().toString();
User user = new Gson().fromJson(data, User.class);
//数据解析
//1、数据源
beanList = (ArrayList<User.DataBean>) user.getData();
//2、*布局管理器
//①线性 LinearLayoutManager
//②网格 GridLayoutManager
//③瀑布流 StaggeredGridLayoutManager
//LinearLayoutManager manager = new LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false);
//GridLayoutManager manager = new GridLayoutManager(context, 2,GridLayoutManager.VERTICAL,false);
StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(5, StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(manager);
//3、*适配器
LinerAdapter beautyAdapter = new LinerAdapter(beanList, ShowActivity.this);
//设置适配器
recyclerView.setAdapter(beautyAdapter);
beautyAdapter.notifyDataSetChanged();
}
});
}
@OnClick(R.id.image2)
public void onViewClicked() {
}
@Override
public void showData(NewsBean repsoneData) {
//数据源
beanList1 = (ArrayList<NewsBean.DataBean>) repsoneData.getData();
//设置给RecyclerView
StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
recyclerView1.setLayoutManager(manager);
//设置适配器
HomeAdapter homeAdapter = new HomeAdapter(R.layout.recyclerview_item_layout, beanList1);
recyclerView1.setAdapter(homeAdapter);
}
}
Adapter
public class HomeAdapter extends BaseQuickAdapter<NewsBean.DataBean, BaseViewHolder> {
public HomeAdapter(int layoutResId, @Nullable List<NewsBean.DataBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, NewsBean.DataBean item) {
if (item.getList().size() != 0){
if (null!= item.getList().get(0).getTitle()){
helper.setText(R.id.tv_title, item.getList().get(0).getTitle());
}
if (null!= item.getList().get(0).getImages()){
String images = item.getList().get(0).getImages();
String[] imageDetails = images.split("\\|");
//获取第一张图片
Glide.with(mContext).load(imageDetails[0]).into((ImageView) helper.getView(R.id.iv_icon));
}
}
}
}