如何在Android Studio中的片段和活动之间移动数据

时间:2017-02-26 16:34:32

标签: java android android-fragments

我正在创建一个应用程序,它应该有一个viewPager和一个搜索片段。 viewpager正在使用两个片段,我在搜索按钮中使用了一个thrid片段。

所有这些都是通过MainActivity.java

互连的

我想要的功能是,当用户选择或输入搜索片段中的任何输入时,此片段将处理数据,然后将其发送到主要活动。

假设用户搜索电影复仇者,他们进入搜索按钮“复仇者联盟”,现在我将使用API​​,因此搜索片段会将其转换为“+复仇者”,然后将其发送到主要活动

然后主要活动将其发送到viewPager中的一个片段,然后片段将输入与主基本查询组合,在服务器上搜索,然后显示输出。

有人可以帮我把数据,字符串/整数/等格式从搜索片段移动到主要活动,然后移到viewPagers !!

viewPager的源代码:

    viewPager = (ViewPager) findViewById(R.id.viewPager);
    tabLayout = (TabLayout) findViewById(R.id.tabLayout);
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setTabMode(tabLayout.MODE_FIXED);

    viewPager.setAdapter(new CustomAdapter(getSupportFragmentManager(), getApplicationContext()));
    tabLayout.setupWithViewPager(viewPager);

    tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        }
    });

1 个答案:

答案 0 :(得分:0)

您可以创建用于通信的界面并在您的活动中实施它。然后在所需片段的onAttach中,您可以获得对接口实现的引用,并且您可以在每次需要时调用它。

由于您在活动中实现了界面,因此您可以获得所有片段的参考。

在您的情况下,可以使用名为Search的方法定义名为Searchable的接口。您可以在Activity中以及在您调用它的片段搜索中实现此接口。

您可以获得详细的实施和示例here