0

フラグメントonCreateViewメソッド

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.myCustomFragmentLayout, null);

        MyFragmentClass.myListView = (ListView)view.findViewById(R.id.list);
        MyFragmentClass.counter = (TextView)view.findViewById(R.id.counter);

        return view;
}

フラグメントonStartメソッド

public void onStart() {
        super.onStart();

        Builder builder;
        try {
            builder = new Builder();

            MyAsyncTask task = new MyAsyncTask (this, builder);
            task.execute();

        } catch (MyException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

非同期onTaskFinishedメソッド

public void onTaskFinished(BuilderResult result) {
        // check if ListAdapter instance was ever created
        if(null == MyFragmentClass.listAdapter) {
            MyFragmentClass.listAdapter = new MyListAdapter(MyApplication.getContext(), (ArrayList<ListItem>)result.getList());
            MyFragmentClass.myListView.setAdapter(MyFragmentClass.listAdapter);         
        } else {
            MyFragmentClass.listAdapter.clear();
            MyFragmentClass.listAdapter.addCalls((ArrayList<ListItem>)result.getList());
        }

        MyFragmentClass.counter.setText(String.valueOf(result.getTotalCounter()));      

        // dismiss progress dialog
        MyFragmentClass.progressDialog.dismiss();
        MyFragmentClass.progressDialog = null;
}

Fragmentオブジェクト キャスティングのため、静的なウィジェット オブジェクトが必要です。

問題: ListView回転を変更すると消えます。ListViewアクティビティが再作成された後、なぜ表示されないのかわかりません。

編集済み

ベース フラグメント オブジェクトのフィルター メソッドのキャストと実行。

public void onDialogPositiveClick(DialogFragment dialog) {

        for(int i = 0; i < mTabsAdapter.getCount(); i++) {
            Fragment fragment = mTabsAdapter.getItem(i);

            if(fragment instanceof BaseOmoFragment) {
                ((BaseOmoFragment) fragment).filter();
            }
        }
}

PS私はActionBarSherlockライブラリを使用していることに言及する必要があります。

4

0 に答える 0