0

私は現在アクティビティーとフラグメントについて学習しています。私はボタンをクリックするたびにフラグメントビューを変更する簡単なアプリケーションを持っています。私はまた、私は別の断片間でスワイプできることに気づいた。Android Javaのアクティビティーにフラグメントが表示されます

私のアクティビティでは、ボタンをクリックすると、どのフラグメントが表示されるのかを示すTextViewがあります。アクティビティ間をスワイプすると、アクティビティのTextViewには、

たとえば、自分のアクティビティでbtn2をクリックすると、TextViewに「あなたはタブ2にいる」と表示されます。次のフラグメントにスワイプすると、どのフラグメントが表示されているかに基づいて、「あなたはタブ3にいる」のようなものを表示するようにActivityにしたいと思います。

私は既にOnDataPassを使用して、ユーザーがFragment内の情報を送信したときの処理を行います。ユーザーが別のフラグメントにスワイプしたときにデータを渡すことができる別の方法は、アクティビティでTextViewに何を表示させるかを知ることができますか?または、OnDataPassを使用し続けますか?

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

    textView = (TextView) findViewById(R.id.textview); 

    mSectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager()); 
    mViewPager = (ViewPager) findViewById(R.id.container); 
    setupViewPager(mViewPager); 
} 


public void onClickBtn1(View v){ 
    int gotoIndex = 0; 
    mViewPager.setCurrentItem(gotoIndex, true); 
    textView.setText("you're in tab1"); 
} 

public void onClickBtn2(View v){ 
    int gotoIndex = 1; 
    mViewPager.setCurrentItem(gotoIndex, true); 
    textView.setText("you're in tab2"); 
} 

public void onClickBtn3(View v){ 
    int gotoIndex = 2; 
    mViewPager.setCurrentItem(gotoIndex, true); 
    textView.setText("you're in tab3"); 
} 

public void onClickBtn4(View v){ 
    Main2Activity.fromActivity("abc"); 
    Log.i("btn4", "was clicked"); 
} 

//used for when fragment passes data to activity 
@Override 
public void onDataPass(String data) { 
    Log.d("LOG", "passed data: " + data); 
} 



private void setupViewPager(ViewPager viewPager) { 
    SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new Main2Activity(), "TAB1"); 
    adapter.addFragment(new Main3Activity(), "TAB2"); 
    adapter.addFragment(new Main4Activity(), "TAB3"); 
    viewPager.setAdapter(adapter); 
} 

ありがとう:

は、ここに私の活動です!あなたが使用する必要があるタスクのこの種の

答えて

1

ViewPager.OnPageChangeListener

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

    textView = (TextView) findViewById(R.id.textview); 

    mSectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager()); 
    mViewPager = (ViewPager) findViewById(R.id.container); 
    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
      @Override 
      public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

      } 

      @Override 
      public void onPageSelected(int position) { 
       // Here you get a new position. 
       textView.setText("you're in tab" + String.valueOf(position)); 
      } 

      @Override 
      public void onPageScrollStateChanged(int state) { 

      } 
     }); 
    setupViewPager(mViewPager); 
} 
関連する問題