0

私はアンドロイドフラグメントが初めてです。actionbarsherlock FragmentsTabsPager を使用しています。3 つのフラグメントを含む 3 つのタブがあります。タブを選択するか、スワイプすることで、3 つのフラグメントすべてを表示できます。タブ(フラグメント)が選択されるたびに通知を受け取りたいです。タブをクリックしてスワイプすることで選択/再選択されるたびに、listfragment のリストビューをリロードしたいと考えています。これどうやってするの?フラグメントにコールバックがありますか。OncreateView、onactivitycreated が呼び出されていません。

4

1 に答える 1

0

これが良い解決策かどうかわからない...

リスナー:

    public interface OnShowFragmentListener {
        abstract public void onShow();
    }

タブアダプタの場合:

    private OnShowFragmentListener onShowSearchScreenListener = new OnShowFragmentListener() {
        @Override
        public void onShow() {
        }
    };

    public void setOnShowFragmentListener(OnShowFragmentListener onShowFragmentListener) {
        this.onShowFragmentListener = onShowFragmentListener;
    }     

    @Override
    public void onTabChanged(String tabId) {
        int position = tabHost.getCurrentTab();
        viewPager.setCurrentItem(position);
        if (position == 0) {
            onShowFragmentListener.onShow();
        }
    }

そして、タブフラグメントのonCreate()で:

    MainTabsPager main = (MainTabsPager) getActivity();
    main.setOnShowFragmentListener(new MainTabsPager.OnShowFragmentListener() {

        @Override
        public void onShow() {
            updateFragment();
        }
    });
于 2012-10-21T00:09:02.987 に答える