首页 > 解决方案 > 如何通过Bundle将数据从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 片段

 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:尝试在 Adapter.Tab1_Adapter$1.onClick(Tab1_Adapter.java:78) 的空对象引用上调用虚拟方法 'android.app.FragmentTransaction android.app.FragmentManager.beginTransaction()'

标签: javaandroidjsonandroid-fragments

解决方案


FragmentManager 将一直存在null,直到它附加到活动。

而不是使用

FragmentManager manager=fragment.getFragmentManager();

利用

 getActivity().getFragmentManager() or getActivity().getSupportFragmentManager();

推荐阅读