二级联动

效果图
在这里插入图片描述
Activity

	FragmentManager manager = getActivity().getSupportFragmentManager();
    final FragmentTransaction transaction = manager.beginTransaction();
    final LeftFragment left = new LeftFragment();
    final RightFragment right = new RightFragment();

    transaction.add(R.id.left, left);
    transaction.add(R.id.right, right);

    transaction.commit();

LeftFragment

	left = view.findViewById(R.id.left);

    left.setLayoutManager(new LinearLayoutManager(getActivity()));
    DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
    left.addItemDecoration(dividerItemDecoration);

    sendPresenter = new SendPresenter(this);
    sendPresenter.sendPresenter();
   
    public void sendview(final JSONArray result) {
    final MyLeftAdapter myLeftAdapter = new MyLeftAdapter(getActivity(), result);
    left.setAdapter(myLeftAdapter);

    myLeftAdapter.ClickLisenter(new MyLeftAdapter.ClickLisenter() {
        @Override
        public void ClickLisenter(int position) {
            try {
                JSONObject jsonObject = result.getJSONObject(position);
                String id = jsonObject.getString("id");
                backS.getData(id);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    });

}
public interface CallBackS {
    void getData(String id);
}

private CallBackS backS;

public void getCallBackS(CallBackS backS) {
    this.backS = backS;
}

RightFragment

    right = view.findViewById(R.id.right);

    right.setLayoutManager(new LinearLayoutManager(getActivity()));
    DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
    right.addItemDecoration(dividerItemDecoration);

    FragmentManager manager = getActivity().getSupportFragmentManager();
    LeftFragment leftFragment = (LeftFragment) manager.findFragmentById(R.id.left);
    leftFragment.getCallBackS(this);

    sendPresenter = new SendPresenter(this);

 @Override
public void getData(String id) {
    sendPresenter.sendPresenter(id);
}
 @Override
public void send2view(final JSONArray result) {
    MyRightAdapter myRightAdapter = new MyRightAdapter(getActivity(), result);
    right.setAdapter(myRightAdapter);

}

LeftAdapter

 public class MyLeftAdapter extends RecyclerView.Adapter<MyLeftAdapter.MyViewHandler> {
public interface ClickLisenter {
    void ClickLisenter(int position);
}

private ClickLisenter clickLisenter;

public void ClickLisenter(ClickLisenter clickLisenter) {
    this.clickLisenter = clickLisenter;
}

Context context;
JSONArray result;

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

@NonNull
@Override
public MyViewHandler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(context).inflate(R.layout.layout_left, null, false);
    final MyViewHandler myViewHandler = new MyViewHandler(view);

    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int layoutPosition = myViewHandler.getLayoutPosition();
            if (clickLisenter != null) {
                clickLisenter.ClickLisenter(layoutPosition);
            }
        }
    });
    return myViewHandler;
}

@Override
public void onBindViewHolder(@NonNull MyViewHandler myViewHandler, int i) {
    try {
        JSONObject jsonObject = result.getJSONObject(i);
        String name = jsonObject.getString("name");
        myViewHandler.text.setText(name);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

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

class MyViewHandler extends RecyclerView.ViewHolder {
    private TextView text;

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

RightAdapter

	public class MyRightAdapter extends RecyclerView.Adapter<MyRightAdapter.MyViewHandler> {

Context context;
JSONArray result;
String url = "http://172.17.8.100/small/commodity/v1/findCommodityByCategory";
private Handler handler = new Handler();

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

@NonNull
@Override
public MyViewHandler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(context).inflate(R.layout.layout_right, null, false);
    final MyViewHandler myViewHandler = new MyViewHandler(view);

    return myViewHandler;
}

@Override
public void onBindViewHolder(@NonNull final MyViewHandler myViewHandler, int i) {
    try {
        JSONObject jsonObject = result.getJSONObject(i);
        String name = jsonObject.getString("name");
        String id = jsonObject.getString("id");
        myViewHandler.text.setText(name);

        myViewHandler.rlv.setLayoutManager(new GridLayoutManager(context, 4));
        OkHttpUtils3.getInatance().doGet(url + "?categoryId=" + id + "&page=1&count=8", new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        String string = null;
                        try {
                            string = response.body().string();
                            JSONObject jsonObject1 = new JSONObject(string);
                            JSONArray result = jsonObject1.getJSONArray("result");
                            MyAdapter myAdapter = new MyAdapter(context, result);
                            myViewHandler.rlv.setAdapter(myAdapter);

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                });
            }
        });
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

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

static class MyViewHandler extends RecyclerView.ViewHolder {
    private TextView text;
    private RecyclerView rlv;

    public MyViewHandler(@NonNull View itemView) {
        super(itemView);
        text = itemView.findViewById(R.id.text);
        rlv = itemView.findViewById(R.id.rlv);
    }
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值