问题描述
我试图在recyclerview(child)中创建一个recyclerview(parent),两个列表中的所有数据都来自edittext,我想问什么,我如何同时使用这两个数据并在主recyclerview中显示它们? >
ItemParent.Java
public class ImpianItem {
private String txImpian;
private List<KebiasaanItem> itemList;
public String getTxImpian() {
return txImpian;
}
public void setTxImpian(String txImpian) {
this.txImpian = txImpian;
}
public List<KebiasaanItem> getItemList() {
return itemList;
}
public void setItemList(List<KebiasaanItem> itemList) {
this.itemList = itemList;
}
public ImpianItem(String txImpian,List<KebiasaanItem> itemList) {
this.txImpian = txImpian;
this.itemList = itemList;
}
}
AdapterParent.Java
public class ImpianAdapter extends RecyclerView.Adapter<ImpianAdapter.ImpianHolder> {
private RecyclerView.RecycledViewPool viewPool = new RecyclerView.RecycledViewPool();
private List<ImpianItem> itemList;
public ImpianAdapter(List<ImpianItem> itemList) {
this.itemList = itemList;
}
@NonNull
@Override
public ImpianAdapter.ImpianHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.add_impian_item,parent,false);
return new ImpianHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ImpianAdapter.ImpianHolder holder,int position) {
ImpianItem item = itemList.get(position);
holder.tximpian.setText(item.getTxImpian());
linearlayoutmanager layoutManager = new linearlayoutmanager(holder.rvhabits.getContext(),linearlayoutmanager.VERTICAL,false);
layoutManager.setinitialPrefetchItemCount(item.getItemList().size());
KebiasaanAdapter kebiasaanAdapter = new KebiasaanAdapter(item.getItemList());
holder.rvhabits.setLayoutManager(layoutManager);
holder.rvhabits.setAdapter(kebiasaanAdapter);
holder.rvhabits.setRecycledViewPool(viewPool);
}
@Override
public int getItemCount() {
return itemList.size();
}
public class ImpianHolder extends RecyclerView.ViewHolder {
TextView tximpian;
RecyclerView rvhabits;
public ImpianHolder(@NonNull View itemView) {
super(itemView);
tximpian = itemView.findViewById(R.id.impian);
rvhabits = itemView.findViewById(R.id.rv_kebiasaan);
}
}
}
ParentChildFragment.Java
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_aktif,container,false);
RecyclerView rvParent = view.findViewById(R.id.rv_impian_list);
linearlayoutmanager managerParent = new linearlayoutmanager(getActivity());
ImpianAdapter impianAdapter = new ImpianAdapter(itemParent);
rvParent.setAdapter(impianAdapter);
rvParent.setLayoutManager(managerParent);
RecyclerView rvChild = view.findViewById(R.id.rv_kebiasaan);
linearlayoutmanager managerChild = new linearlayoutmanager(getActivity());
KebiasaanAdapter kebiasaanAdapter = new KebiasaanAdapter(itemChild);
rvChild.setLayoutManager(managerChild);
rvChild.setAdapter(kebiasaanAdapter);
return view;
}
这是两个列表的项目变量
List<ImpianItem> itemParent = new ArrayList<>();
List<KebiasaanItem> itemChild = new ArrayList<>();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)