フラグメント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ライブラリを使用していることに言及する必要があります。