怎么去第二个片段,当我从一些其他活动点击按钮TabLayout

问题描述:

我已经创建了ViewPayer的TabLayout这样怎么去第二个片段,当我从一些其他活动点击按钮TabLayout

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <include 
     android:id="@+id/layout" 
     layout="@layout/common_act" /> 


    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/white" 
     app:tabGravity="fill" 
     app:tabIndicatorHeight="4dp" 
     app:tabMode="fixed" 
     app:tabSelectedTextColor="@color/colorAccent" /> 


    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 
</LinearLayout> 

然后,我创建了两个片段。

,以示对TabLayout 我已经创建了类似下面的代码为我TabLayout活动

public class ManageWorkShopActivity extends BaseActivity { 

    private ManageWorkShopActBinding mBinding; 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mBinding = DataBindingUtil.setContentView(this, R.layout.manage_work_shop_act); 


     mBinding.layout.title.setText("Manage Workshop"); 

     setupViewPager(mBinding.viewpager); 
     mBinding.tabs.setupWithViewPager(mBinding.viewpager); 

     mBinding.layout.nav.setVisibility(View.VISIBLE); 
     mBinding.layout.nav.setOnClickListener(view -> onBackPressed()); 

    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new ViewProfileFragment(), "Fragment1"); 
     adapter.addFragment(new ViewPerformanceFragment(), "Fragment2"); 
     viewPager.setAdapter(adapter); 
    } 

} 

然后,我创建了适配器像下面的代码。

然后如果我运行应用程序,那么它会显示Fragment1作为默认选择的屏幕。

在其他的方式我有一个按钮来浏览这个TabLayout活动,另外,如果我点击按钮后,我应该能够去Fragment2为选择屏幕。所以,请人建议的解决方案提前

感谢。

+1

使用viewPager.setCurrentItem(项目);更改当前选项卡 – Prasad

+0

mBinding.tabs.getTabAt(1).select();这一个解决我的问题,当我从其他活动 – AngelJanniee

+0

你想为一个时间或者每次应用程序打开的点击BUTTOM? –

您可以使用viewpager.setCurrentItem(int index)

对于例如你有一个Button btnToNextFragment;

btnToNextFragment.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       yourViewPager.setCurrentItem(int indexOfYourFragment2) 
      } 
     }); 

只是寻呼机setCurrentItem当点击事件发生像下面

nxt.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mPager.setCurrentItem(mPager.getCurrentItem() + 1); 
     } 
    });