我在导航抽屉中有两个片段ListNav和SwipeNav。 ListNav显示String数组中数据的列表视图。 SwipeNav将数据显示为字符串数组中相同数据的滑动视图。我可以将片段从ListNav替换为SwipeNav。字符串数组数据显示“ A到Z”。
我的问题是,当我单击ListNav中的列表时(假设B),然后SwipeNav(替换的片段)从开始显示滑动视图(意味着A)。假设,如果我通过片段替换在ListNav中单击“ D”,则SwipeNav将显示“ D”。请给我建议我将如何实施。
字符串数组:
<string-array name="tab_titles">
<item>A</item>
<item>B</item>
<item>C</item>
<item>D</item>
<item>E</item>
<item>F</item>
<item>G</item>
<item>H</item>
<item>I</item>
........
</string-array>
我在下面使用ListNav替换为OnItemClickListener的SwipeNav:
FragmentManager fm=getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(((ViewGroup)(getView().getParent())).getId(), new SwipeNav());
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
SwipeNav通过字符串数组中的PagerAdapter将数据显示为滑动视图:
tabTitlesArray = context.getResources().getStringArray(R.array.tab_titles);
答案 0 :(得分:1)
我想您在那里缺少一个步骤,那就是当替换滑动片段时,您需要以String形式发送数据。
喜欢。
Bundle bundle = new Bundle();
bundle.putString("TAG", "D");
// set Fragmentclass Arguments
SwipeNav fragobj = new SwipeNav();
fragobj.setArguments(bundle);
FragmentManager fm=getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(((ViewGroup)(getView().getParent())).getId(), fragobj);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
现在在滑动片段上,请确保您收到创建时传递的字符串。
所以在onCreateView
方法中。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String passingString = getArguments().getString("TAG");
return inflater.inflate(R.layout.fragment, container, false);
}
此处TAG仅用于识别您正在传递的内容。