【问题标题】:Moving From one tab view to another by button Click Android ActionBar通过按钮从一个选项卡视图移动到另一个选项卡单击 Android ActionBar
【发布时间】:2013-12-30 11:23:43
【问题描述】:

我正在使用http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/ 制作标签栏。

我还有 3 个标签,第二个标签视图包含列表视图,第三个标签是设置。
设置包含重新加载按钮。当我单击重新加载按钮时,我想移动到第一个选项卡。

我该怎么做?

【问题讨论】:

  • 所有这些标签是碎片还是视图?

标签: android android-actionbar buttonclick tabview


【解决方案1】:

进行以下更改:

  1. 将 viewPager 引用传递给您的适配器并从适配器传递给您的片段:

     public class TabsPagerAdapter extends FragmentPagerAdapter {
        ViewPager viewPager;
        public TabsPagerAdapter(FragmentManager fm,ViewPager viewPager) {
            super(fm);
            this.viewPager=viewPager;  
        }
    
        @Override
        public Fragment getItem(int index) {
    
            switch (index) {
            case 0:
                // Top Rated fragment activity
                return new TopRatedFragment(viewPager);
            case 1:
                // Games fragment activity
                return new GamesFragment(viewPager);
            case 2:
                // Movies fragment activity
                return new MoviesFragment(viewPager);
            }
    
            return null;
        }
    
        @Override
        public int getCount() {
            // get item count - equal to number of tabs
            return 3;
        }
    
    }
    
  2. 在单击视图寻呼机对象上的按钮调用集选择的片段中:

     public class MoviesFragment extends Fragment {
            private ViewPager viewPager;
            public  MoviesFragment (ViewPager viewPager;){
              this.viewPager=viewPager;
            }
            @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
    
            View rootView = inflater.inflate(R.layout.fragment_movies, container, false);
            rootView.findViewById(<your button>).setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    viewPager.setCurrentItem(0);
    
                }
            }); 
            return rootView;
        }
    
    }
    

【讨论】:

    【解决方案2】:

    我知道它已经很晚了......也许它可以帮助其他人......不支持在片段中创建构造函数......所以而不是将 viewpager 作为构造函数传递...... 我们可以在按钮点击的片段中写:

      import android.os.Bundle;
      import android.support.v4.app.Fragment;
      import android.support.v4.view.ViewPager;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.TextView;
    
       /**
       * Created by medha singh on 6/17/2016.
        */
        public class Fragment4 extends Fragment {
    
    
       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container,                  Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        final View view1 = inflater.inflate(R.layout.new_lead2, container, false);
        TextView tv=(TextView)view1.findViewById(R.id.hardware);
        final ViewPager pager=   (ViewPager)getActivity().findViewById(R.id.pager2);
        tv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
             pager.setCurrentItem(1);
    
    
            }
        });
        return view1;
       }
    
       }
    

    所以 getactivity() 是解决方案:我从这里得到它:How to go other Tabs by clicking on a Button from the current Tab in Android?

    【讨论】:

      【解决方案3】:

      这样做:

      btn.setOnClickListener(new OnClickListener()
      {
      onClick(View v)
      {
      //Reload the data
      tabHost.setCurrentTab(/*destination-tab-id*/);
      }
      }
      )
      

      【讨论】:

      • 这不起作用。因为这里没有使用Tab Host做tab,所以这里使用了Action bar。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多