滑动标签时调用API

问题描述 投票:-1回答:2

我有一个带有3个标签的标签布局。每个标签都需要显示API调用中的某些数据(我正在使用Retrofit)。

因此,当用户打开该活动时,我将拥有主要活动,我先获取第一个标签的数据,然后显示视图

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        context = this;

        if (Application.isConnected()) {
            getTrips();

        } else {
            Toast.makeText(this , "No internet Connection" , Toast.LENGTH_LONG).show();
            setContentView(R.layout.no_internet_connection);
        }
   }

因此,在API调用成功后,我将视图膨胀如下:>

   public void inflatingView () {

        setContentView(R.layout.activity_mytrip);
        context = this;

        tvTitle = findViewById(R.id.tv_title);
        tabLayout = findViewById(R.id.tablayout);
        tvTitle.setText("Trips");
        tabLayout.addTab(tabLayout.newTab().setText("My Trips"));
        tabLayout.addTab(tabLayout.newTab().setText("Unclosed Trips"));
        tabLayout.addTab(tabLayout.newTab().setText("UnApproved Trips"));


        viewPager = findViewById(R.id.viewpager);
        myTripAdapter = new MyTripAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
        viewPager.setAdapter(myTripAdapter);
        viewPager.setOffscreenPageLimit(3);


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

                switch (tabLayout.getSelectedTabPosition()) { 

                    case 0 :
                        Log.d("test" , "first tab");
                        break;
                    case 1 :
                        Log.d("test" , "Second tab");
                        getTab2Data();
                        break;
                    case 2 :
                        Log.d("test" , "Third tab");
                        break;
                }

                viewPager.setCurrentItem(tabLayout.getSelectedTabPosition());
            }

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

            }

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

            }
        });

        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

    }

因此,获取了第一个选项卡中第一个片段的数据,我的问题是片段2和片段3。我只想在用户滑动时调用API。正如您在上面看到的,我试图检测用户何时滑动到第二个选项卡,然后调用method来获取数据,但不幸的是它现在可以工作。

您对如何执行此操作有任何想法吗?

我有一个带3个标签的标签布局。每个标签都需要显示API调用中的一些数据(我正在使用Retrofit)。因此,当用户打开该活动时,我有一个主要活动,即获取......>

java android tabs fragment
2个回答
0
投票
onViewCreated方法中调用片段内部的API

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.