下面是第一个 fragment 的适配器代码,这里将数据发送到第二个 fragment StoreDetails。
holder.cv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
StoreDetails fragment = new StoreDetails();
Bundle bundle = new Bundle();
bundle.putString("store_id",pojo.getSTORE_ID());
bundle.putString("store_name",pojo.getSTORE_NAME());
bundle.putString("address",pojo.getSTORE_ADDRESS());
// bundle.putString("status",pojo.getSTATUS());
// bundle.putString("teammember",pojo.getSTATUS());
fragment.setArguments(bundle);
FragmentManager manager=fragment.getFragmentManager();
// in below line I am getting error
FragmentTransaction ft = manager.beginTransaction().replace(R.id.container,fragment,"fragment");
ft.addToBackStack("fragment");
ft.commit();
}
});
下面是 StoreDetails fragment
Bundle bundle = getArguments();
mstore_id = bundle.getString("store_id");
mstore_name =bundle.getString("store_name");
mstoreaddress= bundle.getString("address");
mstorestatus = bundle.getString("status");
mteammember = bundle.getString("teammember");
我收到的错误是
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.FragmentTransaction android.app.FragmentManager.beginTransaction()' on a null object reference at Adapter.Tab1_Adapter$1.onClick(Tab1_Adapter.java:78)
最佳答案
FragmentManager 在附加到 Activity 之前将为 null
。
而不是使用
FragmentManager manager=fragment.getFragmentManager();
使用
getActivity().getFragmentManager() or getActivity().getSupportFragmentManager();
关于java - 如何通过Bundle将数据从 fragment 传输到 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52202480/