gpt4 book ai didi

java - 如何将数据从 Fragment 传递到 Tablayout 片段

转载 作者:行者123 更新时间:2023-12-01 19:13:37 24 4
gpt4 key购买 nike

这将在使用 viewpageAdapter 的片段中运行片段。我想将数据从片段传递到 tablayout 片段。我已经尝试过任何方法,但仍然崩溃。我只想将一次数据传递到 tablayout 中的片段。

第一个片段。我想将这一行传递给 tablayout 片段:-

specItem = getArguments().getString("spec_item");

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

imageUrl = getArguments().getString("image_url");
priceItem = getArguments().getString("price_item");
specItem = getArguments().getString("spec_item");

}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_view_details_item, container, false);

textPrice = (TextView) rootView.findViewById(R.id.textPrice);
image_Details = (ImageView) rootView.findViewById(R.id.image_Detail);
tabLayout = (TabLayout) rootView.findViewById(R.id.tablayout_id);
viewPager = (ViewPager) rootView.findViewById(R.id.viewpage_id);

textPrice.setText(priceItem);

Picasso.get().load(imageUrl).into(image_Details);

ViewPageAdapter adapter = new ViewPageAdapter(getActivity().getSupportFragmentManager());
adapter.AddFragment(new FragmentSpecifications(), "Specification");
adapter.AddFragment(new FragmentReview(), "Review");

viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);


return rootView;
}

表格布局中的第二个片段,我不知道如何接收:-

View rootView;

TextView textSpec;
String specItem;
public FragmentSpecifications() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_specification, container, false);

textSpec = (TextView) rootView.findViewById(R.id.textviewspec);

textSpec.setText();

return rootView;
}

最佳答案

FragmentSpecifications 中创建一个 Fragment 实例以向其发送数据,如下所示:

public static FragmentSpecifications newInstance(String priceItem) {

Bundle args = new Bundle();
args.putString("priceItem", priceItem);
FragmentSpecifications fragment = new FragmentSpecifications();
fragment.setArguments(args);
return fragment;
}

之后,在同一个 FragmentSpecifications 中重写 onCreate 方法并获取值:

private String priceItem;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null)
priceItem = getArguments().getString("priceItem");
}

最后,当您添加 FragmentSpecifications 时,适配器会传递该值:

adapter.AddFragment(FragmentSpecifications.newInstance(priceItem), "Specification");

关于java - 如何将数据从 Fragment 传递到 Tablayout 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59445789/

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