我有一个活动,我正在添加片段。有一个片段(WhenFragment),我在其上添加另一个片段(DateSelectionFragment)来获取日期,当我按back时,我需要该日期并希望在文本视图中设置。我为此使用了OnFragmentInteractionListener,它正确返回WhenFragment的结果。但我无法在OnFragmentInteractionListener实现中访问Textview来设置日期。
@Override
public void onFragmentInteraction(Bundle bundle) {
mBinding.textView.setText(bundle.getString("result"),"");
}
回到我使用碎片的时候
getActivity().onBackPressed();
mListener.onFragmentInteraction(bundle);
它给出了nullPointerException。非常感谢您的帮助。
您可以将值存储在shared首选项中,然后稍后从其他地方获取它。
尝试更改后面的功能如下:-
mListener.onFragmentInteraction(bundle);
getActivity().onBackPressed();
或
如果您是使用getChildFragmentManager()
添加第二个片段,那么首先必须管理片段堆栈,而不是活动堆栈。
@Override
public void onBackPressed() {
// If the fragment exists and has some back-stack entry
if (mActivityDirectFragment != null && mActivityDirectFragment.getChildFragmentManager().getBackStackEntryCount() > 0){
// Get the fragment fragment manager - and pop the backstack
mActivityDirectFragment.getChildFragmentManager().popBackStack();
}
// Else, nothing in the direct fragment back stack
else{
// Let super handle the back press
super.onBackPressed();
}
}
一些有用的完整链接:-
带有嵌套片段的回栈行为
将数据从嵌套片段发送到父片段
我在活动C中有四个片段,它们的行为就像标签一样。我必须从一个片段转到一个新的活动X。现在我想回到从活动X到片段的片段。 这是我的主要活动 '公共类MainInterface扩展了ActionBarActivity{ } ' 下面是活动视图中的公共类讨论。onclick侦听器{ ###
我有两个活动类和一个非活动类,它们从构造函数中传递的上下文调用startActivityForResult()。它看起来是这样的:FirstActivity- 不活跃 第二活动 第一活动
我有两个活动,我在第二个活动上启动一个Intent以使用start ActivityForResult(...)检索结果,然后使用onActivityResult(...)处理结果。 问题是结果从第二个活动返回的代码始终RESULT_CANCELED。因此,不要通过条件的“resultCode == RESULT_OK”,在我的Main Acitivty中更新textView。 主要活动 第二项活
在Android中,当我们用一个新的片段替换容器视图时,我们可以使用replace()和addToBackStack(),因此按下back按钮就可以转到上一个片段。 但如果出现以下情况怎么办: 在Activity1中,我可以按下back按钮从fragment2转到fragment1。但当fragment2启动另一个活动时,从Activity2按下back按钮,它会将我带到Activity1中的fr
亲活性 这意味着,onActivityResult()将在作为该子片段的父片段的片段内部调用refresh。作为连锁反应,refreshDeliveryFragment()将调用这两个子片段中的一个子片段来刷新它们的recyclerview数据。
我正在建立一个简单的应用程序,我想从片段回到物理按钮的活动。我该怎么做?我试图杀死碎片,但它不起作用。