0

どのように使用できnotifyDataSetChangedますFragmentPagerAdapterか?

onResume:
使っmMyFragmentPagerAdapter.notifyDataSetChanged();たけどダメだった

しかし
mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
、働いている

    public class Activity extends FragmentActivity{

     static ViewPager mViewPager;  
        private MyFragmentPagerAdapter mMyFragmentPagerAdapter;  
        public void onCreate(Bundle savedInstanceState) {  

            super.onCreate(savedInstanceState);
     mViewPager = (ViewPager) findViewById(R.id.pager);  
            mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());  
            mViewPager.setAdapter(mMyFragmentPagerAdapter);  
}  
     private static class MyFragmentPagerAdapter extends FragmentPagerAdapter { 
    ...
    }

    @Override
       protected void onResume() {
           super.onResume();

    //WORKS     
             mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());        
         mViewPager.setAdapter(mMyFragmentPagerAdapter);  

    //DOESN'T WORK
     mMyFragmentPagerAdapter.notifyDataSetChanged();
     mViewPager.setAdapter(mMyFragmentPagerAdapter);     

           }
       }

移入:

 public void startView() {
 this.questions.clear();  // this.questions is a LinkedList
 this.questions.add(q);

    }
4

2 に答える 2

1

アダプターの拡張FragmentPagerAdapterを変更するFragmentStatePagerAdapterと、正常にnotifyDataSetChanged動作します。それは私のための仕事です。

于 2015-08-03T08:01:04.577 に答える
1

まず、ListView / ViewPager またはその他の種類のビューとそのアダプターを更新するにはCursor、たとえば、それを使用してビューにデータを入力する場合は、再クエリを実行する必要があります。あなたの状況のように、あなたはViewPagerとを持っていますAdapter。したがって、最初に検討することは、 を更新する方法ですLinkedList。あなたの状況では、あなたはそれを正しくやっていますが、私の意見では、あなたの外部クラスは、アダプターを設定するために使用しているものthis.quetionsとは異なります。LinkedListこの場合、外部クラスを使用してアダプターを更新しないことをお勧めします。LinkedListコード編成によってはそれを達成するのが難しすぎる場合は、自分Fragmentのクラスと外部クラスで同じものを使用していることを確認してください。

于 2013-04-24T08:24:41.770 に答える