4

アプリケーションの実行中に複数のビューが表示されます。私は各ビューにビューのIDタグとして格納されている独自の個人設定を持たせたいと思います。これらの上には、サブプリファレンスが作成されたときにそれらのデフォルト値を取得するために参照する「一般プリファレンス」があります。Androidアプリの各ビューの設定を個別に設定します

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

+1

あなたは複数のsharedpreferencesファイルを持つことができます知っていますか? –

答えて

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); 
} 

、私の主な活動で、私はSを取得します

SharedPreferences preferences = getSharedPreferences(preferencesName, MODE_PRIVATE); 
String somePreference = preferences.getString("somePreference", defaultValue); 
+0

ハハ、ありがとう。私はあなたがここにいる正確な方法を使って、それをしばらく外に見つけました。本当に私はこの質問があったことを忘れてしまった、あるいは私はそれに再び答えただろう。しかし、ありがとう。 – AedonEtLIRA

-2

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

+0

あなたの投稿をありがとう、私の以前のコメントと同じ、私はどのように設定のGUIを制御する?私が知る限り、PreferenceActivityはdefaultSharedPreferencesに対してのみ機能します。 – AedonEtLIRA

0

私はコメントする価値がありませんが、答えを書くために、ここで私たちは行く: 私は本当にDefaultSharedPreferencesの代わりにPreferencesActivityでsharedPreferencesを使用する方法を知りたいです。

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

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

関連する問題