[英]How to get data from activity to fragment in android?
我在我的項目中使用了導航抽屜,並且“添加”功能處於由fab調用的活動中。 我需要從“活動”到“片段”中獲取數據。
我已經嘗試使用捆綁軟件,並且應用程序崩潰。
在我的活動中,AddTodoActivity.java文件->
date.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//showDatePicker();
Bundle bundle = new Bundle();
bundle.putString("1", "From Activity");
FragmentList fragobj = new FragmentList();
fragobj.setArguments(bundle);
Fragment fragment = new FragmentList();
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.screen, fragment);
ft.commit();
}
finish();
}
});
在myfragment中,FragmentList.java文件->
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Toast.makeText(this.getContext(), this.getArguments().getString("1"), Toast.LENGTH_SHORT).show();
....
那里有FragmentList
兩個實例: fragobj
和fragment
。
您使用fragobj.setArguments()
,然后將fragment
傳遞給FragmentManager。
我真的不知道為什么要這樣做,但是如果要傳遞參數,則需要刪除其中一個實例,然后將參數設置為剩下的一個。 我建議只刪除fragment
之一:
//...
FragmentList fragobj = new FragmentList();
fragobj.setArguments(bundle);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.screen, fragobj);
fr.commit();
//...
片段的空檢查也是不必要的。 它不可能為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.