我在操作栏中有 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_;
}
如果您需要更多代码,请告诉我。