如何使用片段侦听器模式从片段A获取视图?

时间:2015-09-19 03:20:10

标签: android android-fragments

在片段B中点击某些内容后,我想将一个字符串从它传递给前一个片段,即片段A.

我尝试通过在片段B中创建包含活动实现的侦听器接口来实现此目的。在片段B的onAttach中,我将活动转换为监听器类型。当在片段B中单击某些内容时,我会调用必须在“活动”中定义的侦听器回调:

myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
selectedListener.onItemSelected(dataItem);
}

});

在活动中:

@Override public void onItemSelected(MyData dataItem) {
    FragmentA currentFragment = (FragmentA)fragMgr.findFragmentByTag("FragmentA");
    LinearLayout containerView = currentFragment.getView().findViewById(R.id.container);

此时片段backstack看起来像fragmentA - > fragmentB。在回调中调用fragmentA的getView会返回null,为什么会这样,我该如何获取此视图?

1 个答案:

答案 0 :(得分:0)

getView()可能返回null,因为您在调用片段onCreateView()之前尝试访问它。

尝试仅在片段的字段上设置数据(即currentFragment.setMyData(dataItem)),然后在onCreateView()中检查该字段的非空值。