java - 将数据通过捆绑包从 Activity 传递到 Fragment 时获取 null
问题描述
通过捆绑传递时在途中丢失数据,我得到
尝试在String bundlePassData = this.getArguments().getString("tagName") 处的空对象引用上调用虚拟方法 'java.lang.String android.os.Bundle.getString(java.lang.String)';
这是我的代码示例。主活动->
tagsView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Bundle bundle = new Bundle();
TextView textView = (TextView) view.findViewById(R.id.tagName);
String selectedItemName = textView.getText().toString();
bundle.putString("tagName", selectedItemName);
TaskAssignFragment taskAssignFragment = new TaskAssignFragment();
taskAssignFragment.setArguments(bundle);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.commit();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new TaskAssignFragment()).addToBackStack(null).commit();
Log.i("ListView", selectedItemName);
}
});
任务分配片段->
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_task_assign, container, false);
TextView test = view.findViewById(R.id.testerView);
String bundlePassData = this.getArguments().getString("tagName");
test.setText(bundlePassData);
return view;
}
我应该尝试interfaces
吗?但是,如果我需要将数据作为变量,而不仅仅是在函数中,因为我会在我的fragment
.
解决方案
在您的代码中,您在替换时正在创建新片段。
TaskAssignFragment taskAssignFragment = new TaskAssignFragment();
taskAssignFragment.setArguments(bundle);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new TaskAssignFragment()).addToBackStack(null).commit();
使用您在其中设置参数的已创建片段实例
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
taskAssignFragment).addToBackStack(null).commit();
推荐阅读
- python - 如何在 Keras 中使用部分张量?
- web-crawler - 在处理分配给它的存储桶中的所有 url 后,我的 spout 线程会在风暴爬虫中保持空闲吗?
- reactjs - 无法在反应中读取未定义的属性“推送”
- swift - 按顺序执行异步操作的正确方法
- java - 我无法使用音乐库中的 FingerprintSimilarity
- go - golang 中的 [][]*datatype 是什么意思
- wix - 系统找不到文件“wixca.dll”
- css - 更改 Keycloak 自定义登录主题中的登录按钮颜色
- json - 如何取消引用嵌套的json?
- jquery - 如何在 ng-repeat Angular js 中将长类型日期转换为本地日期格式?