[英]How to pass multiple parameters from Single Activity to multiple Fragments
假設我有一個
問題類別列表活動
實現3個片段的詳細信息活動
我已經看到了不同的方法,例如使用包和使用接口,但我聽不懂它們。 所以我需要幫助的人!!!
您可以通過在片段中定義新實例來傳遞參數,如下所示:
public class FragmentA extends BaseFragment {
View view;
PreferencesManager pm;
@BindView(R.id.textview1)
TextView textView1;
public static FragmentA newInstance(String param1,String param2,String param3) {
Bundle args = new Bundle();
FragmentA fragment = new FragmentA();
args.putString("param1", param1);
args.putString("param2", param2);
args.putString("param3, param3);
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if (view == null) {
view = inflater.inflate(R.layout.fragment_a, container, false);
ButterKnife.bind(this, view);
if (getArguments().size() > 0) {
param1= getArguments().getString("param1");
param2= getArguments().getString("param2");
param3= getArguments().getString("param3");
}
}
return view;
}
}
這是您替換片段的方式:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_main, FragmentA.newInstance(param1,param2,param3))
.addToBackStack(null)
.commit();
這樣嘗試
從您的活動班級發送數據:
YourFragment fragment = new YourFragment (); fragment.setArguments(data);
接收片段類中的數據:
Bundle bundle=getArguments();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.