Android 如何将数据发送到 运行 片段
Android how to send data to a running fragment
有没有办法将一些数据从 activity 发送到 运行 片段?
在我的应用程序中,我在另一个片段上添加了第二个片段。我有意使用 add 方法而不是 replace 方法。所以现在我想用
隐藏我的第二个片段
fragmentManager.popBackStack();
我的第一个片段又出现了。隐藏第二个片段后,我想将一些数据从 activity 发送到静止的 运行 第一个片段。
知道怎么做吗?它不适用于捆绑包(额外放置),因为我不重建片段,我只是隐藏第二个片段!
你可以使用像this这样的EventBus库,它简单易用,非常方便。
您可以在创建片段时在片段上使用标签,以便在需要时调用它们。
getFragmentManager().beginTransaction()
.add(R.id.content, new SomeFragment(), SomeFragment.class.getSimpleName())
.commit();
所以上面我在创建时使用class的简单名称来标记片段并将其添加到activity。
SomeFragment fragment = (SomeFragment) getFragmentManager().findFragmentByTag(SomeFragment.class.getSimpleName());
我可以在需要时调用它,并且知道它像上面那样显示,现在我可以通过调用自定义片段中的 public 方法并将其传递给它来像往常一样发送数据数据作为参数。
一个简单的解决方案是:
MyFragment oldFragment = (MyFragment) fragmentManager.findFragmentById(R.id.fragment_place);
fragmentManager.popBackStackImmediate();
MyFragment newFragment = (MyFragment)fragmentManager.findFragmentById(R.id.fragment_place);
newFragment.postData(...);
有没有办法将一些数据从 activity 发送到 运行 片段? 在我的应用程序中,我在另一个片段上添加了第二个片段。我有意使用 add 方法而不是 replace 方法。所以现在我想用
隐藏我的第二个片段fragmentManager.popBackStack();
我的第一个片段又出现了。隐藏第二个片段后,我想将一些数据从 activity 发送到静止的 运行 第一个片段。
知道怎么做吗?它不适用于捆绑包(额外放置),因为我不重建片段,我只是隐藏第二个片段!
你可以使用像this这样的EventBus库,它简单易用,非常方便。
您可以在创建片段时在片段上使用标签,以便在需要时调用它们。
getFragmentManager().beginTransaction()
.add(R.id.content, new SomeFragment(), SomeFragment.class.getSimpleName())
.commit();
所以上面我在创建时使用class的简单名称来标记片段并将其添加到activity。
SomeFragment fragment = (SomeFragment) getFragmentManager().findFragmentByTag(SomeFragment.class.getSimpleName());
我可以在需要时调用它,并且知道它像上面那样显示,现在我可以通过调用自定义片段中的 public 方法并将其传递给它来像往常一样发送数据数据作为参数。
一个简单的解决方案是:
MyFragment oldFragment = (MyFragment) fragmentManager.findFragmentById(R.id.fragment_place);
fragmentManager.popBackStackImmediate();
MyFragment newFragment = (MyFragment)fragmentManager.findFragmentById(R.id.fragment_place);
newFragment.postData(...);