0

次のようなメインアクティビティに SharedPreferences があります。

public class MainActivity extends SherlockFragmentActivity {

public void showUserSettings() {
    SharedPreferences sharedPrefs = PreferenceManager
            .getDefaultSharedPreferences(getApplicationContext());
    Editor editor= sharedPrefs.edit();
    editor.putString("userFormat", sharedPrefs.getString("example_list", "2"));
    editor.commit();    
}

今、私は SharedPreferences から値を取得したいのですが、次のクラスで:

public class ReadFormatSharePerf extends Activity {
private DecimalFormat df;
public String finalFormat(String finalFormat) {
    SharedPreferences sharedPrefs = PreferenceManager
            .getDefaultSharedPreferences(getApplicationContext());
    String customFormat = sharedPrefs.getString("userFormat", "#.##");
    df = new DecimalFormat(customFormat);
    String result = df.format(finalFormat);
    return result;      
}

上記のアクティビティを次のコードのように呼び出しました:

public class Angles  {
 ...

 ...
ReadFormatSharePerf my= new ReadFormatSharePerf();
    result=my.finalFormat(String.valueOf(finalValue));
}

私はエラーをキャッチしました:

10-16 15:57:24.035: E/AndroidRuntime(10792): java.lang.NullPointerException

atandroid.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101)

どうすればできますか?

4

3 に答える 3

0

このコード スニペットは役に立ちます。Shared Preference KEYの値は同じでなければなりません

値の保存

 SharedPreferences preferences = getSharedPreferences("MY_SHARED_PREF",0);
        SharedPreferences.Editor editor = preferences.edit();    
        editor.putInt(String.valueOf(key), value);//store int values, can use string,arrays,etc 
        editor.commit();

これを使ってみてください

保存された値をロードする

 SharedPreferences getProgramPrefs = this.getSharedPreferences(
                "MY_SHARED_PREF", MODE_WORLD_READABLE);

        int Index = getProgramPrefs.getInt(String.valueOf(key), -1);
于 2013-10-16T12:06:15.860 に答える