2013-07-05 24 views
0

您好我想在我的應用程序中創建首選項,但由於一些依賴性問題,我根本無法使用資源。 我能夠做到這一點使用下面的代碼:沒有XML的Android偏好 - 使用片段

public class DTMainActivity extends PreferenceActivity { 

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

    setPreferenceScreen(defaultPref()); 
    setDependencies(); 


} 

// The first time application is launched this should be read 
private PreferenceScreen defaultPref() { 
    PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); 

    SwitchPreference dLogTracingEnablePref = new SwitchPreference(this); 
    dLogTracingEnablePref.setTitle(R_Class.R_String.dLogTracingEnablePrefString); 
    dLogTracingEnablePref.setDisableDependentsState(false); 
    dLogTracingEnablePref.setChecked(true); 
    dLogTracingEnablePref.setKey(R_Class.R_String.dLogTracingEnablePrefKey); 
    root.addPreference(dLogTracingEnablePref); 
} 

我想做到這一點使用新的基於片段的方法,不使用過時的API,如getPreferenceManager等。我可以創建其他所有的UI佈局像linearlayout等元素沒有任何資源,但是當涉及到首選項和PreferenceFragment類時,所有可用的是addPreferencesFromResource(),它需要一個XML。請問有人可以幫我嗎?

回答

0

我設法使其使用PreferenceFragment,沒有addPreferencesFromResource(), 相反,我剛剛創建的PreferenceScreen像你剛纔那樣,並使用

嘗試使用bindPreferenceSummaryToValue,認爲「P」是一個PreferenceScreen與偏好已經加入它,(也已創建和先前配置)

PreferenceScreen p = createPreferences();//a method that creates a PreferenceScreen and add some preferences into it 
this.setPreferenceScreen(p); 
bindPreferenceSummaryToValue(p.findPreference("preference_key")); 

我回應有人用類似的問題here ..也許你可以檢查出來