如果我在不使用 bundle
的情况下将 object
传递给 fragment
会产生什么影响?我刚刚打开一个旧代码并在那里找到它并且忍不住问这个问题,因为我从未尝试过。我也没有在其中发现任何内存泄漏。
这是它的实现方式-
Activity 类:
MyFragment fragment =
MyFragment.newInstance(getIntent().getStringExtra(DATA),
instance.getCallback(),
instance.getRequest());
getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commit();
fragment 类:
public class MyFragment extends Fragment {
public MyFragment() {
/* Required empty public constructor */
}
public static MyFragment newInstance(String data, Callback callback,
Request request) {
MyFragment fragment = new MyFragment();
fragment.setCallback(callback);
fragment.setRequest(request);
fragment.setData(data);
return fragment;
}
private void setCallback(Callback callback) {
this.callback = callback;
}
private void setData(Data data) {
this.data = data;
}
private void setRequest(Request request) {
this.request = request;
}
}
一般来说,到目前为止我使用的是 Fragment#setArguments(Bundle)
最佳答案
请查看此答案:Why its not recommended to pass object to fragment with simple getter setter .
长话短说,您将丢失有关配置更改的数据。
主要有两种与 fragment 通信的方式:通过包或通过您在 Activity 中实现的接口(interface)。请查看此链接以了解如何通过接口(interface)正确地与 fragment 通信:https://developer.android.com/training/basics/fragments/communicating
关于android - 不带参数将对象传递给 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53669374/