0

我有一个要添加片段的活动。有一个片段(WhenFragment),我在其上添加另一个片段(DateSelectionFragment)以获取日期,当我按下时我需要该日期并希望在文本视图中设置。我为此使用了 OnFragmentInteractionListener ,它正确返回了WhenFragment 的结果。但是我无法在该 OnFragmentInteractionListener 实现中访问 Textview 来为其设置日期。

@Override
public void onFragmentInteraction(Bundle bundle) {
   mBinding.textView.setText(bundle.getString("result"),"");
}

回到我正在使用的WhenFragment

 getActivity().onBackPressed();
 mListener.onFragmentInteraction(bundle);

它给出了 nullPointerException。非常感谢任何帮助。

4

2 回答 2

0

尝试按如下方式更改后退功能:-

 mListener.onFragmentInteraction(bundle);    
 getActivity().onBackPressed();

或者

如果您是使用getChildFragmentManager()then 添加第二个片段,则首先必须管理片段堆栈,而不是活动堆栈。类似于:-

 @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();          
}
}

一些有用的链接:-

嵌套片段的回栈行为

将数据从嵌套片段发送到父片段

于 2019-03-14T17:28:35.057 回答
-1

您可以将值存储在 sharedPreferences 中,然后稍后从其他地方获取它。

于 2019-03-14T16:38:23.640 回答