4

この質問は非常にわかりにくいかもしれませんが、私は正しい解決策を見つけることができません。

だからここに私の問題があります:

ユーザーが異なるリスト間をスワイプできるように、データ(ajava.util.Listとmy TaskObjects)をそれぞれ独自のフラグメントに複数(たとえば5)で表示したいと思います。ExpandableLists現時点では、、、およびタブとをMainFragmentActivity含む「拡張」(TabsAdapterなど)を含むがあります。これらの2つのフラグメントには、それぞれ独自のと(私が書いたもの)があります。java.util.ListPageViewerFragmentPagerAdapterAllTaskFragmentOverDueTaskFragmentExpandableListExpandableListAdapter

ユーザーが子をクリックしたときに、他のフラグメントに更新ExpandableListsを通知するにはどうすればよいですか?ExpandableListAdapterを呼び出してMainFragmentActivity、そこからすべてのフラグメントを呼び出しようとしましたが、フラグメントExpandableListAdaptersは「null」でしたが、なぜですか?

アップデート:

私は問題を解決したと思います、atmは以下で働いています:

ExpandableListAdapterで何かが変更された場合は、でupdateTabs()を呼び出します。

MainFragmentActivity

    public void updateTabs() {
        for(int i = 0 ; i < tabsAdapter.getCount() ; i++) {
            UpdateableFragment updateableFragment = (UpdateableFragment) getSupportFragmentManager().findFragmentByTag(makeFragmentName(mViewPager.getId(),i));
            updateableFragment.updateFragment();
        }
    }

    private String makeFragmentName(int viewId, int index){
         return "android:switcher:" + viewId + ":" + index;
    }

各フラグメントでメソッドを呼び出すだけです

public void updateFragment() {
         adapter.notifyDataSetChanged();
}

これは良いアプローチですか?それとも、これはいくつかの問題を引き起こす可能性がありますか?

4

1 に答える 1

0

このようなアプリケーションの重要な点は、ArrayAdaptersを追跡することです。を呼び出すとArrayAdapter.notifyDataSetChanged()、ビューを更新するように指示されます。

于 2012-11-24T00:24:08.750 に答える