我一直坚持这个问题很长一段时间了。我有一个带有自定义ListView适配器的ListView。当我点击某个项目时,它会打开一个Webview片段。它一切都很好,但是当我弹出WebView片段时,ListView变为空。根据我的理解,ListView应该保持原样,就像我将它添加到backtrace时一样。这是我添加片段代码和onBackPress函数。
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.mainContent, fragment)
.addToBackStack(null)
.commit();
和
@Override
public void onBackPressed() {
// finish();
int count = getFragmentManager().getBackStackEntryCount();
if (count == 1 || count==0) {
super.onBackPressed();
//additional code
} else {
getFragmentManager().popBackStackImmediate();
}
}
例如我的一个Fragment类是这样的:
public static class PreferencesFragment extends Fragment {
public PreferencesFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
vfrag= inflater.inflate(R.layout.fragment_preferences, container, false);
swipeLayout = (SwipeRefreshLayout)vfrag.findViewById(R.id.swipe);
swipeLayout.setOnRefreshListener(new OnRefreshListener() {
@Override
public void onRefresh() {
// TODO Auto-generated method stub
swipeLayout.setRefreshing(false);
}
});
swipeLayout.setColorScheme(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
return vfrag;
}
}
如果您想查看我的完整代码,请访问link。作为旁注,我在SO上就这个主题经历了很多问题,但没有一个答案解决了我的问题。如果有人帮我解决这个问题,我将非常感激,
先谢谢。