从backstack

时间:2015-10-14 19:33:03

标签: android listview android-fragments android-listview

我一直坚持这个问题很长一段时间了。我有一个带有自定义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上就这个主题经历了很多问题,但没有一个答案解决了我的问题。如果有人帮我解决这个问题,我将非常感激,

先谢谢。

0 个答案:

没有答案