4

アプリケーションの実行中に出入りする複数のビューがあります。各ビューには、ビューの ID タグとして保存される独自の個人設定が必要です。これらの上には、ビューの作成時にサブ設定がデフォルト値を取得するために参照する「一般設定」があります。

現在、一般設定がデフォルトの SharedPreferences になるように設定しています。しかし、ユーザーが変更できるように、新しい設定を作成してアクティビティ UI を設定する方法がわかりません。SharedPreferences の設定とほとんど同じですか?

4

3 に答える 3

5

これはあなたが求めているものとは正確に一致しないかもしれませんが、私がしていることは次のとおりです。

メインアクティビティでは、設定アクティビティを呼び出すときに、カスタム設定ファイルの名前をインテントの追加データとして渡します。

static final String EXTRA_PREFERENCES_NAME = "android.intent.extra.PREFERENCES_NAME";
...
Intent intent = new Intent(this, Preferences.class);
intent.putExtra(EXTRA_PREFERENCES_NAME, preferencesName);
startActivity(intent);

次に、設定アクティビティで、カスタム設定名を取得し、次のように設定します。

public class Preferences extends PreferenceActivity {
    private String preferencesName = "";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // get the custom preferences name from the extra data in the intent
    preferencesName = getIntent().getExtras().getString(MainActivity.EXTRA_PREFERENCES_NAME);
    // set the preferences file name
    getPreferenceManager().setSharedPreferencesName(preferencesName);
    // get the default preferences from XML
    addPreferencesFromResource(R.xml.preferences);
}

最後に、私のメインアクティビティでは、次のような特定の設定を取得します。

SharedPreferences preferences = getSharedPreferences(preferencesName, MODE_PRIVATE);
String somePreference = preferences.getString("somePreference", defaultValue);
于 2011-06-23T23:33:28.163 に答える
0

どういうわけか、私はコメントする価値はありませんが、答えを書くことはできません。

これを実現するために考えられる 1 つの方法は、preferenceActivity で値を defaultSharedPreferences に保存し、これらの値を読み取って、保存された値の種類と一致する名前に関連付けられた sharedPreferences に保存することです。

しかし、これは非常に間違っているようです。それで、皆さんはこれをどのようにしますか?または、すべての値を PreferencesActivties から defaultSharedPreferences に保存しますか?

于 2011-02-11T08:11:42.990 に答える
-2

PreferenceManager を使用して目的を達成できます。

于 2011-02-09T17:09:47.057 に答える