2017-07-06 3 views
-3

私は最近コーディングを開始し、チュートリアルに従っています。私は今、タブのアクティビティを使用する方法を学び、ページをスワイプすることでチュートリアルに従っています。ここに私が思いついたのはAndroid Java - ボタン変更タブあり

public class MainActivity extends FragmentActivity { 

ViewPager pager; 

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

    Button btn1 = (Button) findViewById(R.id.btn1); 
    Button btn2 = (Button) findViewById(R.id.btn2); 
    pager = (ViewPager) findViewById(R.id.viewPager); 

    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager())); 
} 

public void onClickBtn1(View v) { 
    //when clicked, take to Main2Activity.java 
} 

public void onClickBtn2(View v) { 
    //when clicked, take to Main3Activity.java 

} 

private class MyPagerAdapter extends FragmentPagerAdapter { 

    public MyPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int pos) { 
     switch(pos) { 

      case 0: return Main2Activity.newInstance("FirstFragment, Instance 1"); 
      case 1: return Main3Activity.newInstance("SecondFragment, Instance 1"); 
      case 2: return Main4Activity.newInstance("ThirdFragment, Instance 1"); 
      default: return Main4Activity.newInstance("ThirdFragment, Default"); 
     } 
    } 

    @Override 
    public int getCount() { 
     return 3; 
    } 
} 
} 

誰かがMyPageAdapterクラスで何が起こっているのか教えてください。

また、ボタンを使用してページをスワイプするのではなく、たとえば、onClickBtn1はMain2Activityに、onClickBtn2はMain3Activityに私を連れて行きます。私は、新しい意図を作成する代わりにタブを使い続けたいと思います。

ありがとうございます!

+0

'何それon'の起こっていることは、あなたのコードで、あなたがそれを書いた1、であり、誰があなたが書いたものを知っている必要がありますし、何が起こっている。あなたの「断片」がアクティビティと呼ばれる理由も? –

+0

このリンクを試してみてください。 https://developer.android.com/training/animation/screen-slide.html –

答えて

0

あなたのMyPageAdapterには、あなたのタブと同じ数の子があります。 たとえば、最初のタブを選択した場合、positionは0になります。 以下のコードで、pos0(First Fragment)の新しいインスタンスが作成されました。

公共フラグメントのgetItem(int型POS)experience.Youがどのビューページャを使用しているユーザーごとに{ボタンクリックでタブを切り替え スイッチ(POS){

 case 0: return Main2Activity.newInstance("FirstFragment, Instance 1"); 
     case 1: return Main3Activity.newInstance("SecondFragment, Instance 1"); 
     case 2: return Main4Activity.newInstance("ThirdFragment, Instance 1"); 
     default: return Main4Activity.newInstance("ThirdFragment, Default"); 
    } 
} 

はクールなアイディアではありません簡単にタブをスワイプするのに役立ちます。コード&を実行すると、コードの機能の詳細を知ることができます。

0

あなたは、タブを使用したい場合は、あなたが活動中で4つのフラグメントを使用し、ViewPagerとそれらを管理することができ、これによってあなたは左のタブとスワイプをクリックすることで、一方から他方へ行くことができ、右

private void initPager() { 
    ViewPager pager = (ViewPager) findViewById(R.id.pager); 
    mAdapter = new MyPagerAdapter(getSupportFragmentManager()); 

    mAdapter.addFragment(firstFragment.newInstance(), getString(R.string.first_fragment_Title)); 
    mAdapter.addFragment(secondFragment.newInstance(), getString(R.string.second_fragment_title)); 
    pager.setAdapter(mAdapter); 

    TabLayout tabs = (TabLayout) findViewById(R.id.tabs); 
    tabs.setupWithViewPager(pager); 
    TextView firstFragmentTabTitle = (TextView) getLayoutInflater().inflate(R.layout.tab_indicator, null); 
    firstFragmentTabTitle.setText(mAdapter.getPageTitle(0).toString()); 
    TextView secondFragmentTabTitle = (TextView) getLayoutInflater().inflate(R.layout.tab_indicator, null); 
    secondFragmentTabTitle.setText(mAdapter.getPageTitle(1).toString()); 

    tabs.getTabAt(0).setCustomView(firstFragmentTabTitle); 
    tabs.getTabAt(1).setCustomView(secondFragmentTabTitle); 
    pager.setCurrentItem(mAdapter.getCount()); 
} 

と主な活動のXMLは次のようにビューのページャとタブレイアウトを追加します。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:orientation="vertical" 
    tools:context=".fragments.BankCounterFragment"> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layoutDirection="ltr" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:contentInsetEnd="16dp" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="start|center_vertical" 
      android:gravity="center|start" 
      android:text="@string/app_name" 
      android:textAppearance="@style/TextAppearance.AppCompat.Title"/> 
    </android.support.v7.widget.Toolbar> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?attr/colorPrimary" 
     android:layoutDirection="ltr" 
     app:tabGravity="fill" 
     app:tabIndicatorColor="@android:color/white" 
     app:tabIndicatorHeight="3dp" 
     app:tabMode="fixed"/> 
</android.support.design.widget.AppBarLayout> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
</LinearLayout> 
関連する問題