效果图
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);
}
}
}