android - 将数据从活动传递到片段时应用程序崩溃
问题描述
我正在努力将 recyclerview 项目从活动传递到片段,我发现 Bundle 对此很有用,但是在我的片段中,当我尝试检索数据时,应用程序崩溃了,那么我该如何解决呢?
这是我发送数据的活动文件代码
Bundle bundle = new Bundle();
bundle.putString("title", title.getText().toString());
bundle.putString("description",
description.getText().toString());
bundle.putString("date", date.getText().toString());
UpdatesActivity updatesActivity = new UpdatesActivity();
updatesActivity.setArguments(bundle);
这是我的片段活动(名为 UpdatesActivity)
private List<Info> infoList = new ArrayList<>();
private InfoAdapter mAdapter;
private Button btnLogOut;
private FirebaseAuth firebaseAuth;
private String title, description, date;
public UpdatesActivity() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_updates, container, false);
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
title = getArguments().getString("title");
description = getArguments().getString("description");
date = getArguments().getString("date");
mAdapter = new InfoAdapter(infoList);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
recyclerView.setAdapter(mAdapter);
return view;
}
}
现在,当我删除用于检索标题、描述和日期的行时,应用程序运行良好,但添加它们时应用程序崩溃。
解决方案
你可以使用这个方法
private void loadFragment(Fragment fragment) {
Bundle bundle = new Bundle();
bundle.putString("title", title.getText().toString());
bundle.putString("description",
description.getText().toString());
bundle.putString("date", date.getText().toString());
fragment.setArguments(bundle);
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.replace(R.id.fragmentContainer, fragment);
fragmentTransaction.commit(); // save the changes
}
推荐阅读
- python-3.x - 特金特
事件绑定在 python 脚本中不起作用 - python - Replace_Downloads.py 中的 Python 异常 IndexError
- javascript - 将文本添加到标记(功能)
- sql - Postgresql分组错误:用作表达式的子查询返回多行
- php - PHP - 解析大型 XML URL
- c - 如何在c中将文本文件拆分为多个部分
- ruby-on-rails - Rails.cache 如何同时进行增量和过期
- java - 生成 N*N 个文档
- c# - 错误消息:创建 TLS 客户端凭据时发生致命错误。内部错误状态为 10013
- stock - IEX:历史市值