点击左侧条目,右侧条目联动,简单RecylerView应用

点击左侧条目,右侧条目联动,简单RecylerView应用
点击左侧条目 之后右侧条目出来,右侧条目中是布局嵌套 ,也就是 在 RecylerView的子布局中 再写一个RecylerView控件,
然后在RecylerView的适配器中加载子布局中的RecylerView,切记,是在MVP 框架之后

依赖
//OKGO
implementation ‘com.lzy.net:okgo:3.0.4’
implementation ‘com.google.code.gson:gson:2.8.5’
//Glide加载图片
implementation ‘com.github.bumptech.glide:glide:3.7.0’

    //导入Design包
    implementation 'com.android.support:design:28.+'

    implementation 'com.jcodecraeer:xrecyclerview:1.5.9'
    //butterknife快速查找资源的依赖
    implementation 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

    //RecyclerView简单方法
    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30'

HomeActivity中的布局

	<android.support.v7.widget.RecyclerView
		android:id="@+id/home_recylerViewbuness"
		android:layout_width="0dp"
		android:layout_weight="2"
		android:layout_height="match_parent"/>
		<android.support.v7.widget.RecyclerView
		android:id="@+id/home_recylerViewgood"
		android:layout_width="0dp"
		android:layout_weight="7"
		android:layout_height="match_parent"/>
	</LinearLayout>

HomeActivity中
public class HomeActivity extends AppCompatActivity implements IContract.IView {

@BindView(R.id.home_recylerViewbuness)
RecyclerView homeRecylerViewbuness;
@BindView(R.id.home_recylerViewgood)
RecyclerView homeRecylerViewgood;
private Presenter presenter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    ButterKnife.bind(this);
    presenter = new Presenter();
    presenter.attachView(this);
    presenter.requestbunessData();
}

@Override
public void showBunessData(String responseData) {
    Gson gson = new Gson();
    BunessBean bunessBean = gson.fromJson(responseData, BunessBean.class);
    final List<BunessBean.DataBean> data = bunessBean.getData();
    LinearLayoutManager manager = new LinearLayoutManager(this);
    homeRecylerViewbuness.setLayoutManager(manager);
	//设置适配器
    final MyBunessAdapter myBunessAdapter = new MyBunessAdapter(R.layout.item_buness,data);
    //点击子条目 ,找到id,并展示右侧条目
    myBunessAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(BaseQuickAdapter adapter, View view, int position) {

            int cid = data.get(position).getCid();
            Toast.makeText(HomeActivity.this, "点点"+cid, Toast.LENGTH_SHORT).show();
            presenter.requestgoodsData(cid);
           // myBunessAdapter.notifyDataSetChanged();
        }
    });
    homeRecylerViewbuness.setAdapter(myBunessAdapter);
}

@Override
public void showGoodsData(String responseData) {
    Toast.makeText(this, responseData, Toast.LENGTH_SHORT).show();
    Gson gson = new Gson();
    GoodsBean goodsBean = gson.fromJson(responseData, GoodsBean.class);
    List<GoodsBean.DataBean> data = goodsBean.getData();
    LinearLayoutManager manager = new LinearLayoutManager(this);
    homeRecylerViewgood.setLayoutManager(manager);
    //设置适配器
    MyGoodsAdapter myGoodsAdapter = new MyGoodsAdapter(R.layout.item_good,data);
    homeRecylerViewgood.setAdapter(myGoodsAdapter);
}

}

**适配器MyBunessAdapter **
public class MyBunessAdapter extends BaseQuickAdapter<BunessBean.DataBean,BaseViewHolder> {

public MyBunessAdapter(int layoutResId, @Nullable List<BunessBean.DataBean> data) {
    super(layoutResId, data);
}

@Override
protected void convert(BaseViewHolder helper, BunessBean.DataBean item) {
    helper.setText(R.id.buness_text,item.getName());
}

}
**适配器MyBunessAdapter对应的布局 **

    <TextView
        android:id="@+id/buness_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:gravity="center"/>
</LinearLayout>

**设置适配器MyGoodsAdapter **
public class MyGoodsAdapter extends BaseQuickAdapter<GoodsBean.DataBean,BaseViewHolder> {

private RecyclerView goods;
public MyGoodsAdapter(int layoutResId, @Nullable List<GoodsBean.DataBean> data) {
    super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, GoodsBean.DataBean item) {
    helper.setText(R.id.good_text,item.getName());

   //加载子布局
    goods = helper.getView(R.id.goodsRecylerView);
    //RecylerView中的RecylerView
    List<GoodsBean.DataBean.ListBean> list = item.getList();
    LinearLayoutManager manager = new LinearLayoutManager(mContext);
    goods.setLayoutManager(manager);
    //设置适配器
    AdapterGoods adapterGoods = new AdapterGoods(R.layout.item_item_goods,list);
    goods.setAdapter(adapterGoods);
}

}
MyGoodsAdapter 对应的布局

<TextView
    android:id="@+id/good_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="20dp"
    android:gravity="center"/>

<android.support.v7.widget.RecyclerView
    android:id="@+id/goodsRecylerView"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>

AdapterGoods 适配器
class AdapterGoods extends BaseQuickAdapter<GoodsBean.DataBean.ListBean,BaseViewHolder> {

public AdapterGoods(int layoutResId, @Nullable List<GoodsBean.DataBean.ListBean> data) {
    super(layoutResId, data);
}

@Override
protected void convert(BaseViewHolder helper, GoodsBean.DataBean.ListBean item) {
    helper.setText(R.id.item_text,item.getName());
    Glide.with(mContext).load(item.getIcon()).into((ImageView) helper.getView(R.id.item_image));
}

}

AdapterGoods 对应布局

<TextView
    android:id="@+id/item_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="测试"
    />
    <ImageView
        android:id="@+id/item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

这样基本上就写完了