0

私はActivityを持っています。そこに表示されるメニューとボタンをクリックすると、PreferenceActivityに行き、ListPreferencesの3つを読み込みます。 ListPreferenceは、リモートDBを更新するためにユーザーが複数の値を選択できるようにしています。たとえば、アプリケーションが一時停止するとその値を保存します。Androidの設定:アクティビティまたはPreferenceActivityに保存

ListPreferencePreferenceActivityにありますが、どのようにそれらの値を取得できますか? ActivityまたはPreferenceActivityの現在の設定状態はどこに保存しますか?

[...] 
private void updateFromPreferences() { 
     Context context = getApplicationContext(); 
     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
     callsFrequencyUpdate = Integer.parseInt(prefs.getString(Preferences.CALLS_FREQUENCY_PREF, "0")); 
     smsFrequencyUpdate = Integer.parseInt(prefs.getString(Preferences.SMS_FREQUENCY_PREF, "0")); 
     locationFrequencyUpdate = Integer.parseInt(prefs.getString(Preferences.LOCATION_FREQUENCY_PREF, "0")); 
    } 

    private void savePreferences() { 
     SharedPreferences activityPreferences = getPreferences(Activity.MODE_PRIVATE); 
     SharedPreferences.Editor editor = activityPreferences.edit(); 
     editor.putInt(Preferences.CALLS_FREQUENCY_PREF, callsFrequencyUpdate); 
     editor.putInt(Preferences.SMS_FREQUENCY_PREF, smsFrequencyUpdate); 
     editor.putInt(Preferences.LOCATION_FREQUENCY_PREF, locationFrequencyUpdate); 
     editor.commit(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     savePreferences(); 
    } 

そして、これは私のPreferences.javaファイルです:

は、これは私が私のActivity.javaでこれまでに行ったことある

public class Preferences extends PreferenceActivity { 
    public static final String CALLS_FREQUENCY_PREF = "CALLS_FREQUENCY_PREF"; 
    public static final String SMS_FREQUENCY_PREF = "SMS_FREQUENCY_PREF"; 
    public static final String LOCATION_FREQUENCY_PREF = "LOCATION_FREQUENCY_PREF"; 

    SharedPreferences prefs; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

どうもありがとう事前に!

答えて

0

sharedPrefs内にある場合、それらの値をどこに書き込んで読んでも問題ありません。しかし、あなたがそれに問題がある場合は、あなたの主なアクティビティでstartActivityForResult()でPreferenceActivityを呼び出すだけでなく、あなたのPreferenceActivityでonPause()内で情報をintent.putExtras()でバンドル/インテントに渡して戻してくださいsetResult()、finish()を使用してメインアクティビティに移動しますか?次に、intent.getExtras()を使ってデータを引っ張って、あなたの主なアクティビティで必要なことをしますか?申し訳ありませんが、私はあなたが尋ねていたことを正確に逃したが、それは非常に明確ではありません。 PreferenceActivityの答えは質問に既にあるので、あなたの提示は非常に明確ではありません

1

...

  1. 件のデータが自動的に保存され

  2. あなたはこの

    ようSharedPreferencesにアクセスすることができます

    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); 
    String value = pref.getString("name_of_my_pref", "default_value"); 
    
関連する問題