2011-06-23 18 views
2

を起動せずに共有設定をデフォルトに取得:hidden_​​prefs.xmlはこのような何かに見えるは、私は、次のPreferenceActivityが定義されているPreferenceActivity

public class HiddenPreferences extends PreferenceActivity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.hidden_prefs); 
    } 
} 

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <EditTextPreference android:key="testRestUrl" 
     android:title="REST service URI" 
     android:defaultValue="http://service/url"> 
    </EditTextPreference> 

</PreferenceScreen> 

を今私がデフォルトに値を設定すると、次のような他のアクティビティでこの設定を読んでみたいと考えています:

PreferenceManager.setDefaultValues(this, R.xml.hidden_prefs, false);   
prefs = PreferenceManager.getDefaultSharedPreferences(this); 

呼び出すとき:

prefs.getString("testRestUrl", ""); 

私は2番目のパラメータとしてデフォルト値を与える必要があり、およびXMLのアンドロイドで与えられるコールは、常にデフォルト値を(コールで与えられる)「」返しますがありません:はdefaultValue属性。

どのように好みはデフォルト値を取得するためにアクセスすべきですか?

答えて

1

あなたはPreferenceActivityをインスタンス化していない場合、私はあなたがこれを行うことができます信じていません。

あなたの最善の策は、のstrings.xmlまたはconfig.xmlで文字列を定義し、コード内でR.strings.testRestUrlを使用することです:

prefs.getString("testRestUrl", getString(R.string.testRestUrl)); 

とXML:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

     <EditTextPreference android:key="testRestUrl" 
      android:title="REST service URI" 
      android:defaultValue="R.string.testRestUrl"> 
     </EditTextPreference> 

    </PreferenceScreen> 
+0

あなたは正しいですPreferenceManagerはこの場合役に立たない。代わりに、古いR.values.my_settings.xmlファイルに切り替えました。 – Drejc

関連する問題