アクションバーに 3 つのタブがあり、各タブはフラグメントに関連付けられています。各フラグメントには、SimpleCursorAdapter にバインドされる ListView があります。ListView アイテムをクリックすると、詳細アクティビティに移動し、戻るための戻るボタンがあります。詳細アクティビティで項目を削除すると、ListView が更新されることを期待しています。
問題は次のとおりです (3 つのタブが A、B、C であると仮定します):
1) A から項目を選択して詳細ページに移動し、この項目を削除してから A に戻ると、タブ A の ListView が更新されます。これは私が期待することです。
2)しかし、タブAを選択し、Bを選択し、もう一度Aを選択してから、1)の手順を繰り返すと、ListViewは更新されません。
詳細アクティビティに戻るには、次のコードを使用します。
getFragmentManager().popBackStackImmediate();
私のTabListenerがあります:
public class TabListener<T extends Fragment> implements ActionBar.TabListener {
public TabListener(Activity activity, String tag, Class<T> clz) {
activity_ = activity;
tag_ = tag;
class_ = clz;
}
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction transaction) {
if (fragment_ == null) {
fragment_ = Fragment.instantiate(activity_, class_.getName());
transaction.add(android.R.id.content, fragment_, tag_);
} else {
transaction.add(android.R.id.content, fragment_, tag_);
}
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction transaction) {
if (fragment_ != null) {
transaction.remove(fragment_);
}
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction transaction) {
// User selected the already selected tab. Usually do nothing.
}
private Fragment fragment_;
private final Activity activity_;
private final String tag_;
private final Class<T> class_;
}
さらにコードが必要な場合は、教えてください。