आप स्ट्रिंग संसाधनों के लिए अपने "जादू स्ट्रिंग" स्थानांतरित कर सकते हैं:
आप वरीयता xml फ़ाइल में:
<EditTextPreference
android:key="@string/preferences_pdn_key"
android:title="@string/preferences_pdn_title"
android:summary="@string/preferences_pdn_summary"
android:dialogMessage="@string/input_pdn_message" />
अपने values/strings.xml
फ़ाइलों में:
...
<string name="preferences_pdn_key">pdn</string>
...
फिर आप वरीयता संदर्भित कर सकते हैं आपके Activity
या PreferenceActivity
से:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String pdnKey = getString(R.string.prefernece_pdn_key);
String pdn = sharedPreferences.getString(pdnKey, null);
आप हर समय आप अभी तक एक और चाल कर सकते हैं स्ट्रिंग संसाधनों से वरीयता कुंजी लाने के लिए पसंद नहीं है:
public class PreferenceNames {
/* categories */
public static final String LoginCategory = MyApplication.getResourceString(R.string.preferences_login_category_key);
...
/* preferences */
public static final String Pdn = MyApplication.getResourceString(R.string.preferences_pdn_key);
...
}
तो अब आप वरीयता कुंजी अगले रास्ता देख सकते हैं:
:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String pdn = sharedPreferences.getString(PreferenceNames.Pdn, null);
और यहाँ अपने MyApplication
वर्ग की तरह दिखना चाहिए कैसे है
इसके अलावा आप अपने AndroidManifest.xml
के बगल में बात जोड़ने की जरूरत:
<application android:name="com.mypackage.application.MyApplication" ... >
...
</application>
प्रश्न क्या है? आप वरीयता स्क्रीन का उपयोग क्यों नहीं करना चाहते हैं? – Jim
अस्पष्ट होने के लिए खेद है; मैं वरीयता स्क्रीन का उपयोग करना चाहता हूं लेकिन मैं अपने कोड में जादू तारों का उपयोग नहीं करना चाहता हूं। तो मैं xml में चाबियाँ स्टोर करने का एक तरीका ढूंढ रहा था। –