我在我的fragment1上有一個getSharedPreferences,它將從前一個片段中加載int。getSharedPreferences在fragment方法上返回nullpointerexception
public void backButtonWasPressed() {
settings = getActivity().getSharedPreferences("MyPref", 0);
.....
}
我打電話fragment1.backButtonWasPressed(),並給我迫使靠近和錯誤消息的NullPointerException 「設置= getActivity()getSharedPreferences。(」 MyPref 「0);」
我的logcat:
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)
324行上片段1是:設置= 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'。 – Simas 2014-08-28 09:32:18
對不起,我的意思是int,我已經編輯了我的問題 – wdyz 2014-08-28 09:33:41
可以發表日誌,說明行號和突出顯示行號嗎? – KOTIOS 2014-08-28 09:39:09