Java 如何在Android上实现父子循环视图
你能给我一些关于亲子循环的参考资料吗?我已经成功地进行了Java 如何在Android上实现父子循环视图,java,android,android-recyclerview,Java,Android,Android Recyclerview,你能给我一些关于亲子循环的参考资料吗?我已经成功地进行了parent Recycleview,但当我从parent单击项目时,我坚持通过child Recycleview 注:我正在使用虚拟数据 这是我想要创建的recyclerview的示例: 这是我的密码 RecycleParentAdapter.java public class RecycleParentMenuAdapter extends RecyclerView.Adapter<RecycleParentMenuAdapte
parent Recycleview
,但当我从parent
单击项目时,我坚持通过child Recycleview
注:我正在使用虚拟数据
这是我想要创建的recyclerview的示例:
这是我的密码
RecycleParentAdapter.java
public class RecycleParentMenuAdapter extends RecyclerView.Adapter<RecycleParentMenuAdapter.ViewHolder>{
private ArrayList<Store> mData;
private LayoutInflater mInflater;
private ItemClickListener mClickListener;
public RecycleParentMenuAdapter(ArrayList<Store> mData, Context context) {
this.mData = mData;
this.mInflater = LayoutInflater.from(context);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = mInflater.from(viewGroup.getContext()).inflate(R.layout.list_store_lists, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.storeName.setText(mData.get(position).getName());
// holder.storeImage.setImageURI(mData.get(position).getImage());
}
@Override
public int getItemCount() {
return (mData != null) ? mData.size() : 0;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private CircleImageView storeImage;
private TextView storeName;
ViewHolder(View itemView) {
super(itemView);
storeImage = itemView.findViewById(R.id.ivListStoreImage);
storeName = itemView.findViewById(R.id.tvListStoreName);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (mClickListener != null) {
mClickListener.onItemClick(view, getAdapterPosition());
}
}
}
public int getItem(int id) {
return (mData != null) ? mData.size() : 0;
}
// allows clicks events to be caught
public void setClickListener(ItemClickListener itemClickListener) {
this.mClickListener = itemClickListener;
}
// parent activity will implement this method to respond to click events
public interface ItemClickListener {
void onItemClick(View view, int position);
}
}
public class RecycleChildMenuAdapter extends RecyclerView.Adapter<RecycleChildMenuAdapter.ViewHolder> {
// private String[] mData;
private ArrayList<Menu> mData;
private LayoutInflater mInflater;
private ItemClickListener mClickListener;
public RecycleChildMenuAdapter(ArrayList<Menu> mData, Context context) {
this.mData = mData;
this.mInflater = LayoutInflater.from(context);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = mInflater.from(viewGroup.getContext()).inflate(R.layout.list_menu_lists, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
// viewHolder.myTextView.setText(mData.get(i).get);
// viewHolder.id.setText((int) 12l);
viewHolder.menuName.setText(mData.get(i).getName());
// viewHolder.menuImage.setText(mData.get(i).getImage());
}
@Override
public int getItemCount() {
return (mData != null) ? mData.size() : 0;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView menuName;
private CircleImageView menuImage;
private TextView id;
ViewHolder(View itemView) {
super(itemView);
menuName = itemView.findViewById(R.id.tvListMenuName);
menuImage = itemView.findViewById(R.id.ivListMenuImage);
// myTextView = itemView.findViewById(R.id.info_text);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (mClickListener != null) {
mClickListener.onItemClick(view, getAdapterPosition());
}
}
}
public int getItem(int id) {
return (mData != null) ? mData.size() : 0;
}
// allows clicks events to be caught
public void setClickListener(ItemClickListener itemClickListener) {
this.mClickListener = itemClickListener;
}
// parent activity will implement this method to respond to click events
public interface ItemClickListener {
void onItemClick(View view, int position);
}
}
MenuModel.java
public class Store {
private String id;
private String name;
private String image;
public Store(String id, String name, String image) {
this.id = id;
this.name = name;
this.image = image;
}
public Store() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
package com.snoci.resto.util.model;
public class Menu {
private String id;
private String name;
private String desc;
private String image;
private Number price;
private String storeId;
public Menu(String id, String name, String desc, String image, Number price, String storeId) {
this.id = id;
this.name = name;
this.desc = desc;
this.image = image;
this.price = price;
this.storeId = storeId;
}
public Menu() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public Number getPrice() {
return price;
}
public void setPrice(Number price) {
this.price = price;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
感谢您的帮助您需要在RecycleParentAdapter.java的onBindViewHolder中填充RecycleChildAdapter.java 比如: 以及:
在父回收器项目布局中创建一个回收器视图,并从父回收器的onBind方法进行设置recycler@VipulChauhan对不起,先生,您能详细解释一下吗。因为我真的很困惑。谢谢
package com.snoci.resto.util.model;
public class Menu {
private String id;
private String name;
private String desc;
private String image;
private Number price;
private String storeId;
public Menu(String id, String name, String desc, String image, Number price, String storeId) {
this.id = id;
this.name = name;
this.desc = desc;
this.image = image;
this.price = price;
this.storeId = storeId;
}
public Menu() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public Number getPrice() {
return price;
}
public void setPrice(Number price) {
this.price = price;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private CircleImageView storeImage;
private TextView storeName;
public RecyclerView recycler_view_child;
ViewHolder(View itemView) {
super(itemView);
storeImage = itemView.findViewById(R.id.ivListStoreImage);
storeName = itemView.findViewById(R.id.tvListStoreName);
recycler_view_child = view.findViewById(R.id.recyclerchild);
itemView.setOnClickListener(this);
}
public class RecycleParentMenuAdapter extends RecyclerView.Adapter<RecycleParentMenuAdapter.ViewHolder>{
private ArrayList<Store> mData;
private LayoutInflater mInflater;
private ItemClickListener mClickListener;
public RecycleChildAdapter adapter;
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.storeName.setText(mData.get(position).getName());
// holder.storeImage.setImageURI(mData.get(position).getImage());
LinearLayoutManager manager=new LinearLayoutManager(context);
manager.setOrientation(LinearLayoutManager.HORIZONTAL);
holder.recycler_view_child.setLayoutManager(manager);
adapter = new ChildAdapter(yourdatalist, context);
holder.recycler_view_child.setAdapter(adapter);
}