在我的项目中,我有一个启动片段的片段。当我第一次运行我的应用程序并访问应用程序时,一切都运行良好。但当我按下后退键并返回到第一个片段,然后点击并转到第二个片段..好吧一切都空白了!
以下是我如何从第一个片段启动第二个片段:
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;
}
}
即使我第一次启动我的片段,它也会记录所有内容,第二次没有记录任何内容!我究竟做错了什么?谢谢你们
答案 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);
}