这个难点在于接口回调,以及联动效果.对于数据的一个处理
Adapter–ParentAdapter
public class ParentAdapter extends BaseQuickAdapter<ParentBean.DataBean, BaseViewHolder> {
public ParentAdapter(int layoutResId, @Nullable List<ParentBean.DataBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, final ParentBean.DataBean item) {
helper.setText(R.id.textone, item.getName());
helper.addOnClickListener(R.id.textone);
//条目点击
helper.setOnClickListener(R.id.textone, new View.OnClickListener() {
@Override
public void onClick(View view) {
//自定义接口回调 传索引
mItemClick.onItem(item.getCid());
}
});
}
//自定义接口
private ItemClick mItemClick;
//接口
public interface ItemClick {
void onItem(int data);
}
//设置外部访问的方法
public void setitemClick(ItemClick mItemClick) {
this.mItemClick = mItemClick;
}
}
Adapter–ChildNameAdapter 嵌套子适配器
public class ChildAdapter extends BaseQuickAdapter<ChildBean.DataBean, BaseViewHolder> {
private TextView mTextView2;
private RecyclerView mRecyclerView;
public ChildAdapter(int layoutResId, @Nullable List<ChildBean.DataBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, ChildBean.DataBean item) {
helper.setText(R.id.twotext, item.getList().get(0).getName());
mRecyclerView = helper.itemView.findViewById(R.id.recythree);
GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 3);
mRecyclerView.setLayoutManager(gridLayoutManager);
ChildItemAdapter childItemAdapter = new ChildItemAdapter(R.layout.itemlayout, item
.getList());
mRecyclerView.setAdapter(childItemAdapter);
}
}
Adapter–ChildAdapter
public class ChildItemAdapter extends BaseQuickAdapter<ChildBean.DataBean.ListBean,
BaseViewHolder> {
public ChildItemAdapter(int layoutResId, @Nullable List<ChildBean.DataBean.ListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper, ChildBean.DataBean.ListBean item) {
helper.setText(R.id.textthree,item.getName() );
String images = item.getIcon();
Log.d(TAG, images + "+++images");
String[] split = images.split("\\|");
if (split.length > 0) {
Uri uri = Uri.parse(split[0]);
((ImageView) helper.getView(R.id.imagethree)).setImageURI(Uri.parse(split[0]));
Log.d(TAG, split[0] + "++++split[0]");
}
}
}
Activity
public class MainActivity extends AppCompatActivity implements DataCall {
@BindView(R.id.recyone)
RecyclerView recyone;
@BindView(R.id.recytwo)
RecyclerView recytwo;
private ParentPresenter parentPresenter;
private ParentAdapter parentAdapter;
private ChildPresenter childPresenter;
private int cidData = 1;
private List<ParentBean.DataBean> dataBeans;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
//实例化P层
parentPresenter = new ParentPresenter(this);
parentPresenter.showParent();
childPresenter = new ChildPresenter(this);
childPresenter.showParent(cidData);
}
@Override
public void showParent(ParentBean parentBean) {
dataBeans = parentBean.getData();
//瀑布流布局
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(1,
StaggeredGridLayoutManager.VERTICAL);
recyone.setLayoutManager(staggeredGridLayoutManager);
//设置适配器
parentAdapter = new ParentAdapter(R.layout.parentitem, dataBeans);
recyone.setAdapter(parentAdapter);
parentAdapter.setitemClick(new ParentAdapter.ItemClick() {
@Override
public void onItem(int data) {
childPresenter.showParent(data);
}
});
}
@Override
public void showChild(ChildBean childBean) {
//设置布局
GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.this, 1);
recytwo.setLayoutManager(gridLayoutManager);
//设置动态添加数据
List<ChildBean.DataBean> childBeanData = childBean.getData();
ChildAdapter childAdapter = new ChildAdapter(R.layout.childview, childBeanData);
//设置适配器
recytwo.setAdapter(childAdapter);
}
@Override
public void showError(String error) {
}
@Override
public Context CONTEXT() {
return this;
}
@Override
protected void onDestroy() {
super.onDestroy();
parentPresenter.onDestroy();
}
}