2017-08-01 18 views
0

私はviewPagersで新しいです。ここに私の問題があります。私はviewPagerに3つの断片を含むアクティビティを持っています。 次のボタンは、異なるフラグメントに従って異なるアクションをトリガーします。現在、私は次のメソッド適用している:私は位置0にいるとき、私は次のボタンをクリックした場合viewpagerで現在表示されているフラグメントを取得する方法

btnNext.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     if(viewPager.getCurrentItem() == 0){ 
      mViewPager.setCurrentItem(getItem(+1), true); 
     }else if(viewPager.getCurrentItem() == 1){ 
      // trigger something 
     } 
    } 
}); 

を、viewPagerは両方の条件がをトリガされた第2のフラグメントとにスワイプ!それは最初のものに過ぎないのでしょうか?対応するフラグメント位置に対して一度に1つのアクションをトリガーする方法は?どんな助けでも大歓迎です。

+0

'viewPager.getCurrentItem()'が0を返す場合、 'mViewPager.setCurrentItem(getItem(+1)、true);'のみが実行され、 '//トリガなもの 'の代わりにコードが実行されます。他の何かに移動する必要があります – lelloman

+0

ビューページが位置0に移動すると、位置1のアクションも実行されます。奇妙じゃない? –

+0

もっとコードを投稿してください。 – lelloman

答えて

0

あなたはこのような何かを試すことができます。

btnNext.setOnClickListener(new OnClickListener() { 

@Override 
     public void onClick(View view) { 
     if(viewPager.getCurrentItem() == 0){ 
      viewPager.setCurrentItem(viewPager.getCurrentItem() + 1,true); 
     } 
     else if(viewPager.getCurrentItem() == 1){ 
      // trigger something 
     } 
     } 
    }); 
+0

ありがとうございました。これを試しても同じ結果が得られます。 : –

+0

プロジェクトをきれいにして再構築しようとしましたか?無効にして現金化して再起動してください –

+0

他に何かが間違っている場合はお手伝いします –

0

は、リスナーの動作を実行することができます場合は私に知らせてください方法

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     //Do it here 
    } 

    @Override 
    public void onPageSelected(int position) { 

    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
}); 

をコールバック。

+1

これはどのように質問に関連していますか? – lelloman

関連する問題