Как начать новое действие или обновить текущее действие с помощью окна просмотра

У меня есть viewpager, который находится во фрагменте. Я хочу начать новое действие или обновить текущее действие с помощью вкладок на нем

На данный момент я использую это, чтобы открыть фрагмент под названием «Воскресенье» и «Понедельник», но я хотел бы добавить еще одну вкладку, и когда пользователь выберет эту вкладку, либо обновите текущее действие в том же состоянии, когда приложение впервые открывается, либо откройте новое действие.

Как начать новое действие или обновить текущее действие с помощью окна просмотра

Вот мой код

public class MainActivity extends AppCompatActivity {


    //RSS link


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
         adapter.addFragment(new sectionB(), "SEC B");


        viewPager.setAdapter(adapter);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);

        tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {

                //here yourDesiredPositionNumber is a int...like 0,1,2,3..according you

                if (tab.getPosition() == 0) {

  Intent i1 = new Intent(MainActivity.this, SagarActivity.class);
            startActivity(i1);
                    //here you can do your refresh of start new activity

                }
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });


    }


    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }


}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
43
1

Ответы 1

Для обновления

Если вы хотите обновить всю активность, вы можете вызвать метод активности recreate().

в вашем случае вы находитесь во фрагменте, поэтому вам нужно сначала получить активность, чтобы вы могли делать как getActivity().recreate()

Для начала новой деятельности

для открытия нового занятия вы можете использовать startActivity()

в твоем случае ты можешь сделать вот так

Intent intent = new Intent(getActivity(),activity_you_want_to_start.class);
startActivity(intent);

Remember one more thing, always make user getActivity() not returning null

Теперь в твоем случае

вам нужно настроить слушателя на вашем TabLayout, как это, затем вызвать метод выше

TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs_dayscount);
    tabLayout.setupWithViewPager(viewPager);

 //setting listener on tabLAyout

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {

               //here yourDesiredPositionNumber is a int...like 0,1,2,3..according you

                if (tab.getPosition() == yourDesiredPositionNumber) {


                    //here you can do your refresh of start new activity 

                }
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });

Еще один способ

Вы также можете установить Listener на ViewPager следующим образом

TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs_dayscount);
        tabLayout.setupWithViewPager(viewPager);

 viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {

            //here yourDesiredPositionNumber is a int...like 0,1,2,3..according you

                if (position==yourDesiredPositionNumber){

                //here you can do your refresh of start new activity

                }

                    super.onPageSelected(position);
            }
        });

Но где мне написать этот код, так как на данный момент у меня есть две кнопки табуляции с этим кодом adapter.addFragment (new Sunday (), "Sunday") .. где я должен добавить этот код, чтобы при нажатии любого из них сначала говорилось вкладка откроет новую активность?

Bir Nepali 20.09.2018 17:49

на вкладке Layout вы можете установить слушателя .. вы знаете, как это сделать, или вам тоже нужна помощь? я могу переписать свой ответ, но скажите, знаете вы или нет .. я отвечу соответственно @BirNepali

Ashwini Violet 20.09.2018 17:55

да, я использую ... Я успешно использую код из одного из руководств, и он работал довольно хорошо ... но теперь мне нужно добавить еще одну или две вкладки, чтобы обновить или открыть новое действие после тех двух вкладок, которые открывают фрагмент.

Bir Nepali 20.09.2018 18:04

Я обновил свой код, о котором идет речь ... теперь даже ранее видимые две вкладки также исчезли, и нет никаких вкладок ... а теперь как сделать вкладку видимой сейчас?

Bir Nepali 20.09.2018 19:30

Ваш вопрос не имеет отношения к тому, что вы хотите .. Вы спрашивали об обновлении и запуске активности, вот что делает этот фрагмент .. Вы не реализуете вещи правильно @BirNepali

Ashwini Violet 20.09.2018 19:41

Хорошо, здесь я реализовал коды, например, adapter.addFragment (новый sectionA (), «Section A»); который открывает фрагмент с именем sectionA, но я хотел бы открыть новое действие вместо фрагмента при нажатии вкладки. Так ты можешь мне с этим помочь?

Bir Nepali 20.09.2018 19:48

Другие вопросы по теме