【发布时间】:2014-10-22 02:45:53
【问题描述】:
我的 fragment1 上有一个 getSharedPreferences,它会从前一个 Fragment 加载 int。
public void backButtonWasPressed() {
settings = getActivity().getSharedPreferences("MyPref", 0);
.....
}
我调用 fragment1.backButtonWasPressed() 并在 "settings = getActivity().getSharedPreferences("MyPref", 0);" 上给我强制关闭和错误消息 nullpointerexception
我的日志猫:
08-28 16:52:21.828: E/AndroidRuntime(4412): FATAL EXCEPTION: main
08-28 16:52:21.828: E/AndroidRuntime(4412): java.lang.NullPointerException
08-28 16:52:21.828: E/AndroidRuntime(4412): at pkh.apps.Fragment1.backButtonWasPressed(Fragment1.java:324)
08-28 16:52:21.828: E/AndroidRuntime(4412): at pkh.apps.KajianUtama.onBackPressed(KajianUtama.java:71)
08-28 16:52:21.828: E/AndroidRuntime(4412): at android.app.Activity.onKeyUp(Activity.java:2131)
Fragment1 上的第 324 行是:settings = getActivity().getSharedPreferences("MyPref", 0);
我的主要 SherlockFragmentActivity :
public class KajianUtama extends SherlockFragmentActivity implements OnItemClickListener {
....
@Override
public void onBackPressed() {
super.onBackPressed();
FragmentManager fm = getSupportFragmentManager();
fragment1 = (Fragment1) fm.findFragmentById(R.id.content_frame);
fragment1.backButtonWasPressed();
}
.....
}
我的片段1:
public class Fragment1 extends SherlockFragment{
....
public void backButtonWasPressed() {
settings = getActivity().getSharedPreferences("MyPref", 0);
c = settings.getInt("numRun",0);
Log.d("back pressed", "c " + c);
}
...
}
请给我一个解决这个问题的方法。谢谢。
【问题讨论】:
-
如果它加载一个字符串,那么为什么默认值为 0?应该是
""或null。 -
对不起,我的意思是 int,我已经编辑了我的问题
-
你可以发布日志说明该行号并突出显示行号吗?
-
getActivity()返回 null。 -
DIVA 和 Fouad Wahabi :请参阅上面的更新问题。谢谢。
标签: android android-fragments sharedpreferences