2013-05-04 11 views
6

ビューページを使用しているときにページを更新する際の問題があります。私はFragmentStatePagerAdapterで簡単なビューページを使用しています。私がしたいのは、現在のフラグメント/ビューにアクセスして、フラグメント/ビュー内の一部のテキストビューを更新できるようにすることだけです。フォーラムで検索していくつかのことを知りました - これを処理する方法の1つは、instantiateItem()のタグを設定してアダプタを呼び出し、findViewbyTagでビューを取得することです。これを実装する方法を理解できず、FragmentStatePagerAdapterで動作するかどうかもわかりません。 - 私は様々なフォーラムで提案されているように他のオプションを検討しましたが、動作させることはできません。fragmentStatePagerAdapterを使用してビューページ内のフラグメント/ビューを更新する

私のコードは、アンドロイドと非常に同じです。基本コンポーネントは同じです(Fragmentアクティビティxmlには、テキストビュー、ビューページャだけのビューページャ、フラグメントクラス、メインFragmentActivityクラスなどいくつかの表示コンポーネントがあります)。私のFragmentActivityクラスでは、onPageSelected()中にテキストビューの変更を行うことができるように、私はviewChagerにpageChangelistenerを追加しました。

助けていただければ幸いです。

参考用にコードを追加する。

答えて

-1

あなたのアクティビティからフラグメントにアクセスし、ビューを更新したいと仮定します。フラグメントはアクティビティの一部であり、それらのビューにはアクセスできます。フラグメントはビューアアダプターで動的に作成され、タグ付けするための簡単で簡単な方法はありません。あなたのフラグメント内の次のメソッドを作成して、そこからあなたのTextViewを更新:1が0秒1が1であるというように...

//access your fragment(in your case your first fragment) 
//this part should be inside your doTextViewChnges() 
Fragment fragment = (Fragment) adapterViewPager 
      .getFragment(0); 
    if (fragment != null) { 
//call a public method inside your fragment to update your text view 
     fragment .updateYourTextView(); 
    } 

編集ですnumber.firstあなたは、単にそのインデックスでフラグメントにアクセスすることができます。あなたのOnPageChangeListenerで

void updateYourTextView() { 
    yourTextView.setText("yourtext"); 

} 
+0

私はあなたが最初の行の断片オブジェクトを取得したのか理解できませんでした。以下は、私がアダプタを作成するフラグメントアクティビティクラスのコードです – user1938357

+0

私はコードを追加するために私の質問を更新しました。 – user1938357

+0

@ user1938357いくつの断片がありますか?フラグメント名が何であれ、フラグメント名を置き換えることができます。フラグメントへの参照がある場合は、そのビューを更新することができます。 –

2


 OnPageChangeListener pageChangelistener = new OnPageChangeListener() { 
      @Override 
      public void onPageSelected(int pageSelected) { 
ScreenSlidePageFragment currentFragment = (ScreenSlidePageFragment) mPagerAdapter.getItem(pageSelected) 
       doTextViewChnges();//access the text view and update it based on pageSelected 

      ---THIS IS WHERE I AM STUCK IN TRYING TO GET THE TEXTVIEW IN MY CURRENT FRAGMWNT/VIEW------- 
      } 
関連する問題