我遇到了問題,並且我已經嘗試了在該網站上找到的所有內容,但沒有幫助,所以我自己在問這個問題。Android中的簡單SharedPreferences
我的代碼是:
public class MyActivity extends Activity{
protected PositionSense positionSense;
protected Preferences preferences;
String IP;
String ID;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
positionSense = new PositionSense(this, null);
SharedPreferences settings = getSharedPreferences("preferences", 0);
IP = settings.getString("ip", "http://192.168.1.3:8080/servlet");
ID = settings.getString("id", "USER");
}
後來,我用這些變量在後臺運行的線程,其接觸servlet和發送一些信息(包括保存在喜好的用戶的位置和ID)
我沒有張貼了這一切,因爲我不想阻塞線程超過必要的(但如果需要的話,我將它張貼全部)
在任何情況下,它不工作,它給了我以下錯誤日誌:
09-14 16:47:20.854: WARN/dalvikvm(552): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
09-14 16:47:20.884: ERROR/AndroidRuntime(552): FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:3044)
at android.view.View.performClick(View.java:3511)
at android.view.View$PerformClick.run(View.java:14105)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3039)
... 11 more
Caused by: java.lang.NullPointerException
at com.moodswings.MoodSwingsActivity.clickHappy(MoodSwingsActivity.java:94)
... 14 more
我不知道該怎麼辦。
有人可以給我SIMPLEST可能的方式來保存一個活動中的偏好設置中的2個字符串,在同一個應用程序中的一些其他活動中使用嗎?這應該是非常簡單的,但我根本無法使它工作,並且我接近我的最後期限。 謝謝!
什麼是'MoodSwingsActivity.java'第94行? – kcoppock
當您使用SharedPreferences.Editor編寫sharedpreferences時,請確保在寫入完成後調用editor.commit()。我錯過了,並有類似的問題 – chaitanya
該錯誤似乎並不是由於SharedPreferences所致。堆棧跟蹤說明了除你的問題之外的其他故事。請交叉檢查你的問題。 – vikas