三级列表分类

Fragment底部导航

package tuisong.bw.com.week3;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;

import tuisong.bw.com.week3.fragment.Five;
import tuisong.bw.com.week3.fragment.Four;
import tuisong.bw.com.week3.fragment.One;
import tuisong.bw.com.week3.fragment.Three;
import tuisong.bw.com.week3.fragment.Two;

public class MainActivity extends AppCompatActivity {
    private RadioGroup rg;
    private RadioButton bt1;
    private RadioButton bt2;
    private RadioButton bt3;
    private One one;
    private Two two;
    private Three three;
    private Four four;
    private Five five;
    private FragmentManager manager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rg = findViewById(R.id.rg);
        bt1 = findViewById(R.id.bt1);
        bt2 = findViewById(R.id.bt2);
        bt3 = findViewById(R.id.bt3);

        manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        one = new One();
        two = new Two();
        three = new Three();
        five = new Five();
        four = new Four();
        transaction.add(R.id.frame, one);
        transaction.add(R.id.frame, two);
        transaction.add(R.id.frame, three);
        transaction.add(R.id.frame, four);
        transaction.add(R.id.frame, five);
        transaction.show(one).hide(two).hide(three);

        transaction.commit();

        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                FragmentTransaction transaction1 = manager.beginTransaction();
                switch (checkedId){
                    case R.id.bt1:
                        transaction1.show(one).hide(two).hide(three).hide(four).hide(five).commit();
                        break;
                    case R.id.bt2:
                        transaction1.show(two).hide(one).hide(three).hide(four).hide(five).commit();
                        break;
                    case R.id.bt3:
                        transaction1.show(three).hide(two).hide(one).hide(four).hide(five).commit();
                        break;
                    case R.id.bt4:
                        transaction1.show(four).hide(two).hide(one).hide(three).hide(five).commit();
                        break;
                    case R.id.bt5:
                        transaction1.show(five).hide(two).hide(one).hide(three).hide(four).commit();
                        break;
                }
            }
        });
    }
}

显示页面

package tuisong.bw.com.week3.fragment;

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;

import com.jwkj.libzxing.OnQRCodeScanCallback;
import com.jwkj.libzxing.QRCodeManager;

import org.json.JSONArray;

import java.util.ArrayList;
import java.util.List;

import tuisong.bw.com.week3.R;
import tuisong.bw.com.week3.adapter.MyAdapter;
import tuisong.bw.com.week3.adapter.MyAdapterThrid;
import tuisong.bw.com.week3.bean.JsonBean;
import tuisong.bw.com.week3.bean.JsonThrid;
import tuisong.bw.com.week3.presenter.GoodsPresenter;
import tuisong.bw.com.week3.presenter.GoodsPresenterSec;
import tuisong.bw.com.week3.presenter.GoodsPresenterThrid;
import tuisong.bw.com.week3.view.GoodsView;
import tuisong.bw.com.week3.view.GoodsViewSec;
import tuisong.bw.com.week3.view.GoodsViewThrid;

/*
 *********************************
 *作者:wangyaowei
 *时间:2019/3/1  16:24
 **
 *
 *********************************
 */public class One extends Fragment implements GoodsView, View.OnClickListener, GoodsViewSec,GoodsViewThrid {

    private GoodsPresenterSec goodsPresenterSec;
    private RecyclerView rlv1;
    private tuisong.bw.com.week3.SearchView searchView;
    private GoodsPresenter goodsPresenter;
    private RadioGroup rg;
    private String sou="裙子";

    private Button sao;
    private Button sousuo;
    private EditText et_name;
    private String name;
    private RecyclerView rlv2;
    private RecyclerView rlv3;
    private GoodsPresenterThrid goodsPresenterThrid;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.one_layout,container,false);
        searchView=view.findViewById(R.id.searchview);
        rlv1 = view.findViewById(R.id.rlv1);
        rlv2 = view.findViewById(R.id.rlv2);
        rlv3 = view.findViewById(R.id.rlv3);
        rg = view.findViewById(R.id.rg);
        //vp = view.findViewById(R.id.vp);
        //头部导航的控件
        sao = view.findViewById(R.id.sao);
        sousuo = view.findViewById(R.id.sou);
        et_name = view.findViewById(R.id.et_name);

        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
        rlv1.setLayoutManager(linearLayoutManager);
        LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(getContext());
        rlv2.setLayoutManager(linearLayoutManager1);
        GridLayoutManager linearLayoutManager3 = new GridLayoutManager(getContext(),3);
        rlv3.setLayoutManager(linearLayoutManager3);

        //P 层
        goodsPresenter =new GoodsPresenter(this);
        goodsPresenter.relaed(sou);
        goodsPresenterSec = new GoodsPresenterSec(this);
        goodsPresenterThrid = new GoodsPresenterThrid(this);
        sao.setOnClickListener(this);
        sousuo.setOnClickListener(this);

        return view;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.sao:
                QRCodeManager.getInstance().with(getActivity()).setReqeustType(0).scanningQRCode(new OnQRCodeScanCallback() {
                    @Override
                    public void onCompleted(String s) {

                    }

                    @Override
                    public void onError(Throwable throwable) {

                    }

                    @Override
                    public void onCancel() {

                    }
                });
                break;
            case R.id.sou:
                name = et_name.getText().toString();
                sou=name;
                Toast.makeText(getActivity(), "123"+name, Toast.LENGTH_SHORT).show();
                goodsPresenter.relaed(sou);
                Log.i("XXX",sou);
                break;

        }
    }


    @Override
    public void onMessageSec(JSONArray resultSrc) {
        final MyAdapter myAdapter=new MyAdapter(getActivity(),resultSrc);
        rlv2.setAdapter(myAdapter);
        Log.i("eeeeee",resultSrc.toString());

        myAdapter.setOnItemClickLisenter(new MyAdapter.OnItemClickLisenter() {

            @Override
            public void onClick(String id) {
                Toast.makeText(getContext(), ""+id, Toast.LENGTH_SHORT).show();

                goodsPresenterThrid.sendId(id);

            }
        });
    }

    @Override
    public void onMessage(JSONArray result) {
        Log.i("sss",result.toString());
        final MyAdapter myAdapter=new MyAdapter(getActivity(),result);
        rlv1.setAdapter(myAdapter);
        Log.i("eeeeee",result.toString());

        myAdapter.setOnItemClickLisenter(new MyAdapter.OnItemClickLisenter() {



            @Override
            public void onClick(String id) {
                Toast.makeText(getContext(), ""+id, Toast.LENGTH_SHORT).show();

                goodsPresenterSec.send(id);

            }
        });
    }

    @Override
    public void onMessageThrid(JSONArray result) {
        MyAdapterThrid myAdapterThrid = new MyAdapterThrid(getActivity(), result);
        rlv3.setAdapter(myAdapterThrid);
    }

    /*@Override
    public void onMessageThrid(ArrayList<JsonThrid> data) {
        MyAdapterThrid myAdapterThrid = new MyAdapterThrid(getActivity(), data);
        rlv3.setAdapter(myAdapterThrid);
    }*/
}

一二级适配器

package tuisong.bw.com.week3.adapter;

import android.content.Context;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.google.gson.Gson;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Text;

import java.util.ArrayList;

import tuisong.bw.com.week3.R;
import tuisong.bw.com.week3.bean.JsonBean;

/*
 *********************************
 *作者:wangyaowei
 *时间:2019/3/1  20:50
 **
 *
 *********************************
 */public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

     private Context context;
     private JSONArray result;

    public MyAdapter(Context context, JSONArray result) {
        this.context = context;
        this.result = result;
    }

    public interface OnItemClickLisenter{
        void onClick(String id);
    }
    private OnItemClickLisenter onItemClickLisenter;
    public void setOnItemClickLisenter(OnItemClickLisenter onItemClickLisenter){
        this.onItemClickLisenter=onItemClickLisenter;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        View view=LayoutInflater.from(context).inflate(R.layout.item_layout,null,false);
        MyViewHolder myViewHolder=new MyViewHolder(view);



        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, int i) {


        try {
            JSONObject jsonObject = result.getJSONObject(i);
            String name = jsonObject.getString("name");

            myViewHolder.name.setText(name);
        } catch (JSONException e) {
            e.printStackTrace();
        }

        myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int layoutPosition = myViewHolder.getLayoutPosition();
                try {
                    JSONObject jsonObject = result.getJSONObject(layoutPosition);
                    String id = jsonObject.getString("id");

                    if (onItemClickLisenter!=null){
                        onItemClickLisenter.onClick(id);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

            }
        });


    }

    @Override
    public int getItemCount() {
        return result.length();
    }



    public class MyViewHolder extends RecyclerView.ViewHolder {

        private final TextView name;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            name = itemView.findViewById(R.id.name);
        }
    }
}

三级适配器

package tuisong.bw.com.week3.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.google.gson.Gson;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.util.ArrayList;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
import tuisong.bw.com.week3.R;
import tuisong.bw.com.week3.bean.JsonBeanThrid;
import tuisong.bw.com.week3.bean.JsonThrid;
import tuisong.bw.com.week3.utils.OkHttpUtils;

/*
 *********************************
 *作者:wangyaowei
 *时间:2019/3/2  9:55
 **
 *
 *********************************
 */public class MyAdapterThrid extends RecyclerView.Adapter<MyAdapterThrid.MyViewHolder> {

     private Context contex;
     private JSONArray result;

    public MyAdapterThrid(Context contex, JSONArray result) {
        this.contex = contex;
        this.result = result;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        View view=LayoutInflater.from(contex).inflate(R.layout.item_three_layout,null,false);

        MyViewHolder myViewHolder = new MyViewHolder(view);

        return myViewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, final int i) {

        try {
            JSONObject jsonObject = result.getJSONObject(i);
            String commodityName = jsonObject.getString("commodityName");
            String masterPic = jsonObject.getString("masterPic");
            String price = jsonObject.getString("price");

            myViewHolder.title.setText(commodityName);
            myViewHolder.price.setText("$ : "+price);

            Glide.with(contex).load(masterPic).into(myViewHolder.img);
        } catch (JSONException e) {
            e.printStackTrace();
        }

       /* String path="http://172.17.8.100/small/commodity/v1/findCommodityByCategory?page=1&count=6&categoryId=1001004002";
        OkHttpUtils.getInstance().getData(path, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String s = response.body().toString();
                Gson gson = new Gson();
                JsonBeanThrid jsonBeanThrid = gson.fromJson(s, JsonBeanThrid.class);
                String commodityName = jsonBeanThrid.getData().get(i).getCommodityName();
                String masterPic = jsonBeanThrid.getData().get(i).getMasterPic();
                String price = jsonBeanThrid.getData().get(i).getPrice();

                myViewHolder.price.setText(price);
                myViewHolder.title.setText(commodityName);
             //   Glide.with()

            }
        });*/

    }

    @Override
    public int getItemCount() {
        return result.length();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        private final ImageView img;
        private final TextView title;
        private final TextView price;

        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            img = itemView.findViewById(R.id.thrid_img);
            title = itemView.findViewById(R.id.thrid_title);
            price = itemView.findViewById(R.id.thrid_price);
        }
    }
}

网络

package tuisong.bw.com.week3.utils;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;

/*
 *********************************
 *作者:wangyaowei
 *时间:2019/3/1  16:27
 **
 *
 *********************************
 */public class OkHttpUtils {
     private static OkHttpUtils okHttpUtils=null;

    public OkHttpUtils() {

    }

    //返回实例的方法
    public static OkHttpUtils getInstance(){
        if (okHttpUtils==null){
            synchronized (OkHttpUtils.class){
                okHttpUtils=new OkHttpUtils();
            }
        }
        return okHttpUtils;

    }

    private static OkHttpClient okHttpClient=null;
    public static synchronized OkHttpClient getOkHttpClient(){
        if (okHttpClient==null){
            okHttpClient=new OkHttpClient();
        }
        return okHttpClient;
    }
    public static void getData(String url, Callback callback){
        OkHttpClient okHttpClient=getOkHttpClient();
        Request build = new Request.Builder()
                .url(url)
                .build();
        Call call=okHttpClient.newCall(build);
        call.enqueue(callback);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44405056/article/details/88094437