2

私はAndroidが初めてで、sharedpreferencesを使用して保存された値を取得する方法がわかりません。これらの値を使用するために他のアクティビティに書き込む必要がある例が見つかりませんでした. 誰かが私を助けることができれば、本当に感謝しています

これは私がデータを保存する方法です:

protected void onResume() {
    super.onResume();
    SharedPreferences prefs = getPreferences(0);
    String restoredText1 = prefs.getString("cpw", "30");
    if (restoredText1 != null) {
        savedcostperworker.setText(restoredText1, TextView.BufferType.EDITABLE);

        int selectionStart = prefs.getInt("selection-start", -1);
        int selectionEnd = prefs.getInt("selection-end", -1);
        if (selectionStart != -1 && selectionEnd != -1) {
            savedcostperworker.setSelection(selectionStart, selectionEnd);
        }
    }
}

protected void onPause() {
    super.onPause();
    SharedPreferences.Editor editor = getPreferences(0).edit();
    editor.putString("cpw", savedcostperworker.getText().toString());
    editor.putInt("selection-start", savedcostperworker.getSelectionStart());
    editor.putInt("selection-end", savedcostperworker.getSelectionEnd());
}

private EditText savedcostperworker;

別のアクティビティの TextView に値「cpw」を表示したいのですが、方法がわかりません

4

1 に答える 1

5

commit()エディターの変更を保存するために呼び出すのを忘れました:

SharedPreferences.Editor editor = getPreferences(0).edit();
...
editor.commit();

別のアクティビティの TextView に値「cpw」を表示したいのですが、方法がわかりません

getSharedPreferences()最初のアクティビティの名前で呼び出すだけで、以前と同じように使用できます。

SharedPreferences prefs = getSharedPreferences("MainActivity", 0);
String string = prefs.getString("cpw", "String not found");
Log.v("SharedPrefs", string);

間違ったファイル名でgetPreferences()呼び出されるため、2 番目のアクティビティでは使用できません。getSharedPreferences()詳細についてはgetPreferences()、ドキュメントを参照してください。

于 2012-12-29T20:58:48.180 に答える