MutiModel层
package com.bwie.d.zhouceshi.m;
import com.bwie.d.zhouceshi.bean.MutiBean;
import com.bwie.d.zhouceshi.okhttp.AbstractUiCallBack;
import com.bwie.d.zhouceshi.okhttp.OkhttpUtils;
/**
* Created by d on 2017/11/13.
*/
public class MutiModel {
public void Refresh(boolean shuxin, String cha, int page, final ModelCallBack modelCallBack){
String path ="http://120.27.23.105/product/searchProducts?keywords="+cha+"&page="+page+"&source=android";
OkhttpUtils.getInstance().asyn(null, path, new AbstractUiCallBack() {
@Override
public void success(MutiBean mutiBean) {
modelCallBack.modelsuccess(mutiBean);
}
@Override
public void failure(Exception e) {
modelCallBack.modelfailure(e);
}
});
}
public interface ModelCallBack{
public void modelsuccess(MutiBean mutiBean);
public void modelfailure(Exception e);
}
}
View层MutiViewCallBack
package com.bwie.d.zhouceshi.jiekou;
import com.bwie.d.zhouceshi.bean.MutiBean;
/**
* Created by d on 2017/11/13.
*/
public interface MutiViewCallBack {
public void success(MutiBean mutiBean);
public void failure(Exception e);
}
MutiPresenter层
package com.bwie.d.zhouceshi.p;
import com.bwie.d.zhouceshi.MainActivity;
import com.bwie.d.zhouceshi.bean.MutiBean;
import com.bwie.d.zhouceshi.jiekou.MutiViewCallBack;
import com.bwie.d.zhouceshi.m.MutiModel;
import com.bwie.d.zhouceshi.okhttp.AbstractUiCallBack;
/**
* Created by d on 2017/11/13.
*/
public class MutiPresenter {
MutiModel mutiModel = new MutiModel();
MutiViewCallBack mutiViewCallBack;
public MutiPresenter(MutiViewCallBack mutiViewCallBack) {
this.mutiViewCallBack = mutiViewCallBack;
}
public void onRefresh(boolean shuxin, String cha, int page){
mutiModel.Refresh(shuxin,cha,page, new MutiModel.ModelCallBack() {
@Override
public void modelsuccess(MutiBean mutiBean) {
mutiViewCallBack.success(mutiBean);
}
@Override
public void modelfailure(Exception e) {
mutiViewCallBack.failure(e);
}
});
}
}
主布局
主类
package com.bwie.d.zhouceshi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.bwie.d.zhouceshi.adapter.MyAdapter;
import com.bwie.d.zhouceshi.adapter.YouAdapter;
import com.bwie.d.zhouceshi.bean.MutiBean;
import com.bwie.d.zhouceshi.jiekou.MutiViewCallBack;
import com.bwie.d.zhouceshi.p.MutiPresenter;
import com.liaoinstan.springview.container.DefaultFooter;
import com.liaoinstan.springview.container.DefaultHeader;
import com.liaoinstan.springview.widget.SpringView;
public class MainActivity extends AppCompatActivity implements MutiViewCallBack{
private Button button;
private EditText editText;
private SpringView springView;
private RecyclerView recyclerView;
private MyAdapter myAdapter;
private MutiPresenter mutiPresenter;
private ImageView imageView;
private YouAdapter youAdapter;
private LinearLayoutManager manager;
private GridLayoutManager gridLayoutManager;
String cha = "笔记本";
int page = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.main_btn);
editText = (EditText) findViewById(R.id.main_ed);
springView = (SpringView) findViewById(R.id.spring);
recyclerView = (RecyclerView) findViewById(R.id.recycle);
imageView = (ImageView) findViewById(R.id.main_image);
youAdapter = new YouAdapter(MainActivity.this);
myAdapter = new MyAdapter(MainActivity.this);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(TextUtils.isEmpty(editText.getText().toString())){
Toast.makeText(MainActivity.this,"请输入",Toast.LENGTH_SHORT).show();
}
else{
if(editText.getText().toString().equals("手机")||editText.getText().toString().equals("笔记本")){
cha = editText.getText().toString();
mutiPresenter.onRefresh(true,cha,page);
}
}
}
});
imageView.setTag(1);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int tag = (int) imageView.getTag();
if(tag==1){
imageView.setImageResource(R.drawable.grid_icon);
imageView.setTag(2);
recyclerView.setLayoutManager(manager);
recyclerView.setAdapter(myAdapter);
}
else{
imageView.setTag(1);
imageView.setImageResource(R.drawable.lv_icon);
recyclerView.setLayoutManager(gridLayoutManager);
recyclerView.setAdapter(youAdapter);
}
}
});
mutiPresenter = new MutiPresenter(this);
manager = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.VERTICAL, false);
gridLayoutManager = new GridLayoutManager(MainActivity.this, 2);
recyclerView.setLayoutManager(manager);
recyclerView.setAdapter(myAdapter);
springView.setFooter(new DefaultFooter(this));
springView.setHeader(new DefaultHeader(this));
springView.setListener(new SpringView.OnFreshListener() {
@Override
public void onRefresh() {
mutiPresenter.onRefresh(true, cha, page);
}
@Override
public void onLoadmore() {
mutiPresenter.onRefresh(false, cha, page);
}
});
}
@Override
public void success(MutiBean mutiBean) {
if(springView !=null){
springView.onFinishFreshAndLoad();
}
myAdapter.add(mutiBean.getData());
youAdapter.add(mutiBean.getData());
}
@Override
public void failure(Exception e) {
Toast.makeText(MainActivity.this,"error",Toast.LENGTH_SHORT).show();
}
}
适配器
package com.bwie.d.zhouceshi.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bwie.d.zhouceshi.R;
import com.bwie.d.zhouceshi.bean.MutiBean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
/**
* Created by d on 2017/11/13.
*/
public class YouAdapter extends RecyclerView.Adapter{
Context context;
public YouAdapter(Context context) {
this.context = context;
}
private List listda;
public void add(List list){
if(listda==null){
listda = new ArrayList<>();
}
listda.addAll(list);
notifyDataSetChanged();
}
@Override
public ImageHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.layout_grid, null);
ImageHolder imageHolder = new ImageHolder(view);
return imageHolder;
}
@Override
public void onBindViewHolder(ImageHolder holder, int position) {
String[] split = listda.get(position).getImages().split("'|'");
ImageLoader.getInstance().displayImage(split[split.length-1],holder.imageView);
holder.textView.setText(listda.get(position).getTitle());
}
@Override
public int getItemCount() {
return listda==null?0:listda.size();
}
static class ImageHolder extends RecyclerView.ViewHolder{
private final ImageView imageView;
private final TextView textView;
public ImageHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.grid_image);
textView = (TextView) itemView.findViewById(R.id.grid_text);
}
}
}
适配器
package com.bwie.d.zhouceshi.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bwie.d.zhouceshi.MainActivity;
import com.bwie.d.zhouceshi.R;
import com.bwie.d.zhouceshi.bean.MutiBean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
/**
* Created by d on 2017/11/13.
*/
public class MyAdapter extends RecyclerView.Adapter{
Context context;
public MyAdapter(Context context) {
this.context = context;
}
private List listda;
public void add(List list){
if(listda==null){
listda = new ArrayList<>();
}
listda.addAll(list);
notifyDataSetChanged();
}
@Override
public ImageHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.layout_list, null);
ImageHolder imageHolder = new ImageHolder(view);
return imageHolder;
}
@Override
public void onBindViewHolder(ImageHolder holder, int position) {
String[] split = listda.get(position).getImages().split("'|'");
ImageLoader.getInstance().displayImage(split[split.length-1],holder.imageView);
holder.textView.setText(listda.get(position).getTitle());
}
@Override
public int getItemCount() {
return listda==null?0:listda.size();
}
static class ImageHolder extends RecyclerView.ViewHolder{
private final ImageView imageView;
private final TextView textView;
public ImageHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.list_image);
textView = (TextView) itemView.findViewById(R.id.list_text);
}
}
}
package com.bwie.d.zhouceshi;
import android.app.Application;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
/**
* Created by d on 2017/11/13.
*/
public class MyApp extends Application{
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(configuration);
}
}