2012-12-06 53 views
0

剛在我的應用程序中添加了首選項屏幕。我想加載和存儲給定的值到我的sqlite數據庫。我不知道如何解決這個問題,因爲我不知道如何訪問字段我的方法的OnCreate,他們沒有任何的android:id字段,但一個機器人:關鍵如何加載和存儲首選項屏幕的值到SQLite數據庫?

這裏是我的佈局

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    android:title="Preferences"> 

    <PreferenceCategory 
    android:title="@string/program_options"> 

    <CheckBoxPreference   
     android:key="pref_opt1" 
     android:title="@string/autoLogin" 
     android:summary="@string/autoLoginDescription" 
     android:defaultValue="true" 
     /> 

    </PreferenceCategory> 

    <PreferenceCategory 
    android:title="@string/program_informations"> 

    <ListPreference 
     android:key="pref_type" 
     android:title="Type" 
     android:summary="Select item from array" 
     android:entries="@array/types" 
     android:entryValues="@array/types_values" 
     android:defaultValue="1" 
     /> 

    <EditTextPreference 
     android:key="pref_text" 
     android:title="Input text" 
     android:summary="Tap to enter some text" 
     android:dialogTitle="Enter text" 
    /> 

    </PreferenceCategory> 

    <Preference 
    android:title="Visit us" 
    android:summary="SRS-Management GmbH"> 

    <intent 
     android:action="android.intent.action.VIEW" 
     android:data="http://paperdynamix.de/" /> 

    </Preference> 

</PreferenceScreen> 

和我的活動,我想訪問該領域

package de.srs.android.pdixuploader.activies; 

import de.srs.android.pdixuploader.R; 
import android.os.Bundle; 
import android.preference.PreferenceActivity; 
import android.widget.CheckBox; 


public class Prefs extends PreferenceActivity { 

    private CheckBox autoLogin; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //here I want to read and prefill the values of the fields 

     addPreferencesFromResource(R.layout.preferences); 
    }     
} 

感謝

回答

0

首先,有沒有必要「預填」的值,因爲Android的HANDELS所有需要的值(第一次使用默認值)。

爲了獲取值只需要使用下面的代碼:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); 
// For example 
Boolean pref_opt1 = sp.getBoolean("pref_opt1", true) 
// generally 
// sp.get[TYPE]("KEY", STANDARD-VALUE); 
+0

將這些首選項來存儲裏面的應用程序,所以在重新啓動後,設置像以前一樣了?或者我必須堅持這些值在數據庫中,並在我的應用程序的開始加載它們? –

+0

不,它們存儲在你的應用程序內部。想象一下'SharedPreferences'是一個具有讀/寫訪問權限的文本文件。所以實際上不需要將這些值放入數據庫或恢復它們。 – reVerse