2013-02-07 48 views
1

我有三個FragmentsFragmentActivity(與viewPager)。我想添加一個刷新按鈕,基本上會刪除所有碎片並重新加載。每個FragmentListView。這是一個不正當的黑客攻擊,或者我應該刷新ListViews? (如果是這樣,我不知道如何從FragmentActivity訪問ListViewsFragments?)刪除碎片並用刷新按鈕重新加載

這是我如何設置片段:

ActionBar actionBar = getSupportActionBar(); 
      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

      mSectionsPagerAdapter = new SectionsPagerAdapter(
        getSupportFragmentManager()); 

      mViewPager = (ViewPager) findViewById(R.id.viewpager); 
      mViewPager.setAdapter(mSectionsPagerAdapter); 
      mViewPager.setOffscreenPageLimit(3); 

      mViewPager 
        .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
         @Override 
         public void onPageSelected(int position) { 
          actionBar.setSelectedNavigationItem(position); 

         } 
        }); 

      for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { 
       actionBar.addTab(actionBar.newTab() 
         .setText(mSectionsPagerAdapter.getPageTitle(i)) 
         .setTabListener(this)); 
      } 

回答

2

如果我正確地讀你的問題,你的FragmentActivity應能夠訪問三個片段中的每一個是否正確?然後設置一個靜態方法,在每個片段中刷新列表(重新連接適配器)並在FragmentActivity中使用刷新按鈕時調用這三種方法。

+0

編輯:我明白你的意思了,好吧..會讓你知道的。 – KickingLettuce

+0

我明白你的答案是如何解決的。但是我的'adaptor'設置在'AsyncTask'內,我從'MySQL'數據庫中獲取列表數據。所以我試圖讓刷新按鈕簡單地將與ListView關聯的'ArrayList'重置爲空,然後再次運行任務。但是,我遇到各種各樣的問題。我正在標記你是正確的,因爲你確實回答了這個問題。我只需要先解決一些其他問題。 – KickingLettuce

+0

哦,而不是分離和重新附加適配器的方法。爲什麼沒有它再次運行異步任務,後續操作是重新填充列表。只要有方法首先取消任何適配器。如果有其他東西可以隨意問! –