片段的第二个实例表现得很奇怪

时间:2014-06-24 17:34:31

标签: android android-fragments

在我的项目中,我有一个启动片段的片段。当我第一次运行我的应用程序并访问应用程序时,一切都运行良好。但当我按下后退键并返回到第一个片段,然后点击并转到第二个片段..好吧一切都空白了!

以下是我如何从第一个片段启动第二个片段:

ft.addToBackStack(null);
ft.replace(R.id.content_frame, UDP);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();

我在第二个片段中有一个ImageView,当我首先启动它时效果很好,但是第二次,它们的图像什么都没显示!

这是第二个片段的代码:

public UniversityImage newInstance() {
        UniversityImage Instance = new UniversityImage();
        return Instance;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View viewta = inflater.inflate(R.layout.universityimage, container,
                false);
        prefs = this.getSherlockActivity().getSharedPreferences(prefName,
                Context.MODE_PRIVATE);
        setRetainInstance(false);
        uniiv = (ImageView) viewta.findViewById(R.id.ivUNI);
        Log.e("Uni", prefs.getString("UniversityName", "LAU"));
        ILoader.DisplayImage(c.getString(c
                .getColumnIndex(UniversitiesDatabase.KEY_IMAGEURL)),uniiv);
 return viewta;
    }
}

即使我第一次启动我的片段,它也会记录所有内容,第二次没有记录任何内容!我究竟做错了什么?谢谢你们

1 个答案:

答案 0 :(得分:1)

把这段代码

 prefs = this.getSherlockActivity().getSharedPreferences(prefName,
                Context.MODE_PRIVATE);
        setRetainInstance(false);
        uniiv = (ImageView) viewta.findViewById(R.id.ivUNI);
        Log.e("Uni", prefs.getString("UniversityName", "LAU"));
        ILoader.DisplayImage(c.getString(c
                .getColumnIndex(UniversitiesDatabase.KEY_IMAGEURL)),uniiv);

in

onActivityCreated(Bundle savedInstanceState){

  super.onActivityCreated(savedInstanceState);
   prefs = this.getSherlockActivity().getSharedPreferences(prefName,
                Context.MODE_PRIVATE);

        uniiv = (ImageView) getView().findViewById(R.id.ivUNI);
        Log.e("Uni", prefs.getString("UniversityName", "LAU"));
        ILoader.DisplayImage(c.getString(c
                .getColumnIndex(UniversitiesDatabase.KEY_IMAGEURL)),uniiv);

}