gpt4 book ai didi

java - 如何将自定义对象传递到不同 fragment 中的列表?

转载 作者:行者123 更新时间:2023-12-02 01:38:52 24 4
gpt4 key购买 nike

所以我有我的MainActivity其中有 BottomNavigationView ,其中有 3 个不同的选项卡,当我单击它们时,它们会将我重定向到 3 个不同的 fragment 。

FragmentA我有一个RecyclerView对于项目,每个项目都有一个按钮。当我单击所述按钮时,我想将该对象发送到 FragmentB所以我可以将其添加到 ArrayList<CustomObject>并更新RecyclerViewFragmentB显示该项目。

唯一的问题是我不知道如何在单击按钮时发送该对象。

adapter.setOnItemRemoveListener(new RemoveItemAdapter.OnItemRemoveListener() {
@Override
public void onItemRemove(int position) {
//Do I send it from here?

}
});

最佳答案

首先在您的模型(对象)类中实现Parcelable,然后从您的 fragment A中调用它 -

Fragment fragmentA = new FragmentGet();
Bundle bundle = new Bundle();
bundle.putParcelable("CustomObject", customObject);
fragmentA .setArguments(bundle);

此外,在 fragment B 中,您还需要获取参数 -

Bundle bundle = getActivity().getArguments();
if (bundle != null) {
model = bundle.getParcelable("CustomObject");
}

您的自定义对象类将如下所示 -

public class CustomObject implements Parcelable {

private String name;
private String description;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.name);
dest.writeString(this.description);
}

public CustomObject() {
}

protected CustomObject(Parcel in) {
this.name = in.readString();
this.description = in.readString();
}

public static final Parcelable.Creator<CustomObject> CREATOR = new Parcelable.Creator<CustomObject>() {
@Override
public CustomObject createFromParcel(Parcel source) {
return new CustomObject(source);
}

@Override
public CustomObject[] newArray(int size) {
return new CustomObject[size];
}
};
}

只需从回收器 View 项单击监听器中调用 Fragment B,并使用上述代码通过 Parcelable 传递自定义对象。

希望有帮助。

关于java - 如何将自定义对象传递到不同 fragment 中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54763977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com