我試圖做一個簡單的程序,它使用SharedPreferences保存並檢索字符串。應用程序通常會加載,但如果我點擊按鈕,應用程序會下降我不知道什麼是錯的。 下面是代碼:在SharedPreferences中使用字符串
Shared.java
package com.example.sharedpreferences;
import android.content.Context;
import android.content.SharedPreferences;
public class Shared {
SharedPreferences prefe;
SharedPreferences.Editor editor;
Context mycontext;
public Shared(Context context){
mycontext = context;
prefe = mycontext.getSharedPreferences("Preference", 0);
editor = prefe.edit();
}
public void setpref(String name, String value){
editor.putString(name, value);
editor.commit();
}
public String getvalue(String name){
return prefe.getString(name, "Nothing!");
}
}
MainActivity.java
package com.example.sharedpreferences;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
Shared preferences;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferences = new Shared(getApplicationContext());
}
public void btn_send(View button){
TextView name = (TextView)findViewById(R.id.name2);
TextView value = (TextView)findViewById(R.id.value2);
String names = (String) name.getText();
String values = (String) value.getText();
preferences.setpref(names, values);
}
public void btn_read(View button){
TextView name = (TextView)findViewById(R.id.name2);
TextView value = (TextView)findViewById(R.id.value2);
String names = (String) name.getText();
String values = preferences.getvalue(names);
value.setText(values);
}
}
謝謝!
你能發佈logcat的輸出?我的猜測是有一個NullPointerException – Jared
我還沒有見過這種特殊的方法(在一個類中重新使用pref對象)。我想知道在編輯器上調用「commit()」後,編輯器不再可用。你可以嘗試將這個邏輯移到你的活動中,每次都得到一個新的SharedPreferernces和Editor參考嗎?這至少會驗證或無效重新使用對象的方法。這有意義嗎? – EJK
logcat中的錯誤在這裏[link](http://txtup.net/DCml)。 EJK,抱歉,但我不知道你的意思。 – Bullman