京东搜索

 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();
    }
}

网格展示数据Gridview布局适配器




    

    



适配器

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);
        }
    }
}

列表展示数据listview




    

    

适配器

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);
    }
}



你可能感兴趣的:(京东搜索)