2015-09-19 3 views
0

Как только что-то щелкнуто в фрагменте B, я хочу передать строку из него в предыдущий фрагмент, фрагмент A.Как получить представление из фрагмента A с шаблоном прослушивателя фрагментов?

Я попытался выполнить это, создав интерфейс прослушивателя внутри фрагмента B, который реализует содержащаяся деятельность. В onAttach фрагмента B я передал активность типу слушателя. Когда что-то щелкнуло в фрагменте 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. Вызов getView в getView в обратном вызове возвращает null, почему это и как я могу получить это представление?

ответ

0

getView(), вероятно, возвращает null, потому что вы пытаетесь получить к нему доступ до того, как был вызван фрагмент onCreateView().

Попробуйте просто установить данные в поле фрагмента (т. Е. currentFragment.setMyData(dataItem)), а затем проверить значение, отличное от нуля, для этого поля в onCreateView().