根据android app中的tab索引更新片段内容

时间:2016-12-20 13:37:37

标签: android android-layout android-fragments tabs

在我的应用程序中,我有一个标签控件,有12个标签。每个选项卡具有相同的片段,但每个选项卡中的内容将不同。片段将具有图像控件和TextView。 如何根据选项卡索引分配不同的片段内容(图像和文本)。我将所有12个图像和文本存储在资源文件中。

提前致谢, IamHuM

2 个答案:

答案 0 :(得分:0)

您可以使用一个片段和一个布局。 在onCreateView中,您可以填充数据。

提示: 使用自定义方法创建片段以将数据传递到。

MyFragment.newInstance(imageUrl, title)

答案 1 :(得分:0)

FragmentStatePagerAdapter(或任何适配器)中,您可以创建新的片段,并使用构造函数来区分它们。使用构造函数的好处在于,您不仅可以使用索引号来设置它们:

public class MyPagerAdapter extends FragmentStatePagerAdapter {
    private static int PAGES = 3;
    private Fragment[] mFragments;


    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
        mFragments = new Fragment[PAGES];
        mFragments[0] = new MyFragment(0);
        mFragments[1] = new MyFragment(1);
        mFragments[2] = new MyFragment(2);
    }


    @Override
    public Fragment getItem(int position) {
        return mFragments[position];
    }

    @Override
    public int getCount() {
        return PAGES;
    }
}

然后你的碎片:

public class MyFragment extends Fragment {
    private int mData;

    public MyFragment(int data) {
        mData = data;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(
                R.layout.fragment_layout, container, false);

        return rootView;
    }
}

我的参考:https://developer.android.com/training/implementing-navigation/lateral.html