基于String Array项,向下一个片段显示相同的项

问题描述 投票:0回答:1

我在导航抽屉中有两个片段ListNav和SwipeNav。 ListNav显示String数组的数据列表视图。 SwipeNav将数据显示为来自字符串数组的相同数据的滑动视图。我能够将ListNav中的片段替换为SwipeNav。字符串数组数据显示“A到Z”。

我的问题是当我点击ListNav(假设B)中的列表时,然后SwipeNav(替换片段)显示从开始的滑动视图(意味着A)。假设,如果我通过Fragment replace点击ListNav中的'D',SwipeNav将显示'D'。 Plz建议我如何实现这一点。

字符串数组:

<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从String Array将数据显示为滑动视图:

tabTitlesArray = context.getResources().getStringArray(R.array.tab_titles);
android arrays android-fragments
1个回答
1
投票

我想你在那里缺少一步,那就是你需要在刷卡片段替换时以字符串形式发送数据。 喜欢。

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

现在在您的滑动片段上确保您正在接收创建时传递的字符串。 所以在onCreateViewmethod。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    String passingString = getArguments().getString("TAG");    
    return inflater.inflate(R.layout.fragment, container, false);
}

TAG只是确定你要传递的内容。

© www.soinside.com 2019 - 2024. All rights reserved.