2013-07-19 28 views
0

我們如何使用首選項將用戶輸入存儲在EditTextPreference框中,並檢索它以便稍後使用。存儲來自EditTextPreference框的用戶輸入

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.prefs); 
this.editPreference = (EditTextPreference)getPreferenceScreen().findPreference("userPass"); 

這是我的代碼。但它不斷崩潰,說preferencescreen不能轉換爲editTextPreference。有任何想法嗎?

謝謝。

的logcat:

07-19 17:14:23.028: E/AndroidRuntime(7032): FATAL EXCEPTION: main 
07-19 17:14:23.028: E/AndroidRuntime(7032): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contact/com.example.contact.PrefsActivity}: java.lang.ClassCastException: android.preference.PreferenceScreen cannot be cast to android.preference.EditTextPreference 

回答

1

如前所述in this artcle,如果你需要一個字符串值,你將不得不使用EditTextPreference.getText()的toString()。然後,您可以將其保存到本地變量或必要時保存到數據庫。

編輯

編寫代碼:

protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.prefs); 
    String userPreference = this.editPreference.getText(); // variable set to String value of text entered in widget 

} 
+0

ü可以建議應該給我發佈的代碼做出怎樣的改變? – user2511882

+0

我編輯了我的答案,向您展示如何設置它。如果您需要填充TextView或獲取某些字符或將其存儲在數據庫中,則可以使用局部變量'userPreference'。 – Phoenix

+0

如果我使用XML文件夾中的prefs.xml,R怎麼能在R文件夾中有一個ID – user2511882