如何将首选项屏幕的值加载并存储到SQLite DB中?

时间:2012-12-06 15:13:14

标签: android android-layout android-sqlite

刚刚在我的应用中添加了一个Preference-Screen。我想加载并将给定值存储到我的sqlite数据库中。我不知道如何解决,因为我不知道如何访问我的方法的oncreate中的字段,他们没有android:id字段但是android:key

这是我的布局

<?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);
    }                   
}

由于

1 个答案:

答案 0 :(得分:0)

首先,没有必要“预填充”这些值,因为Android会自行处理所有需要的值(第一次使用默认值)。

为了获取值,只需使用以下代码:

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