java - 如何通过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()'
解决方案
FragmentManager 将一直存在null
,直到它附加到活动。
而不是使用
FragmentManager manager=fragment.getFragmentManager();
利用
getActivity().getFragmentManager() or getActivity().getSupportFragmentManager();
推荐阅读
- python - 设置子图颜色条刻度标签的字体样式
- c++ - C++ 解构指针树
- c - 重新声明没有链接的“x”
- android - 如何在 Android 应用程序中收听控制台命令?
- google-maps-api-2 - 更改静态 API 的 Google 徽标归属位置
- r - 用分类和连续预测器绘制 GLM 预测值
- javascript - Javascript 包括给出意想不到的结果
- python-3.x - 如何在python3中选择元素的特定值
- ios - WKWebView 不触发方法 createWebViewWithConfiguration
- database - Azure Database for PostgreSQL 的匿名化/数据屏蔽