सबसे अच्छा समझने के लिए यहां क्या हो रहा है आप PreferenceScreen वर्ग के लिए स्रोत कोड से कोड के इस टुकड़े का उल्लेख कर सकते हैं:
@Override
protected void onClick() {
if (getIntent() != null || getPreferenceCount() == 0) {
return;
}
showDialog(null);
}
private void showDialog(Bundle state) {
Context context = getContext();
ListView listView = new ListView(context);
bind(listView);
// Set the title bar if title is available, else no title bar
final CharSequence title = getTitle();
Dialog dialog = mDialog = new Dialog(context, TextUtils.isEmpty(title)
? com.android.internal.R.style.Theme_NoTitleBar
: com.android.internal.R.style.Theme);
dialog.setContentView(listView);
if (!TextUtils.isEmpty(title)) {
dialog.setTitle(title);
}
dialog.setOnDismissListener(this);
if (state != null) {
dialog.onRestoreInstanceState(state);
}
// Add the screen to the list of preferences screens opened as dialogs
getPreferenceManager().addPreferencesScreen(dialog);
dialog.show();
}
तरह से है कि मैं इसे हल करने के स्थापित करने के लिए है पहली वरीयता में क्रिएटिव्यू को ओवरराइड करके अभिभावक पृष्ठभूमि रंग वरीयता स्क्रीन में जोड़ा गया। बेशक यह कुछ कस्टम कोड की आवश्यकता है, लेकिन यह, बहुत जटिल नहीं है उदाहरण के एक सफेद पृष्ठभूमि सेट करने के लिए के लिए:
package com.justinbuser.livewallpapers;
import android.preference.PreferenceCategory;
public class VideoChooserPreferenceCategory extends PreferenceCategory{
public VideoChooserPreferenceCategory(Context context) {
super(context);
}
@Override
protected View onCreateView(ViewGroup parent)
{
parent.setBackgroundColor(0xFFFFFFFF);
return super.onCreateView(parent);
}
}
फिर आप निश्चित रूप से अपने xml बदलकर कि कस्टम श्रेणी का उपयोग करने की आवश्यकता होगी, अर्थात्:
<PreferenceScreen android:title="main preferences">
<PreferenceScreen android:title="sub screen">
<com.justinbuser.livewallpapers.VideoChooserPreferenceCategory android:title="sub screen category" />
</PreferenceScreen>
</PreferenceScreen>
इसके अलावा, यदि आप देखते हैं कि एंड्रॉइड वरीयता स्क्रीन शीर्षक को सेट करता है या नहीं, इस पर आधारित विषय बदलता है, यानी यदि कोई शीर्षक मौजूद है तो यह शीर्षक थीम को शामिल करने वाली थीम को सक्षम बनाता है। इसलिए यदि आप कोई शीर्षक पट्टी नहीं चाहते हैं तो आपको वरीयता स्क्रीन शीर्षक सेट करने से रोकना चाहिए और इसे स्थिर रूप से xml या गतिशील रूप से कोड के माध्यम से सेट करना चाहिए।
स्रोत
2012-04-17 03:57:42
क्या आप दूसरी वरीयता स्क्रीन जोड़ने और उसके बाद जोड़ने के समान दिखने के स्क्रीन शॉट दिखा सकते हैं? – CaseyB
यह मेरी मुख्य वरीयता स्क्रीन http://snapplr.com/fqxc है, इसलिए जब मैं "Herinneringen" (अधिसूचनाओं के लिए डच) पर क्लिक करता हूं तो यह मुझे यह दिखाता है http://snapplr.com/gjzd (और कोई तीर नहीं है Herinneringen के बगल में, जहां एक होना चाहिए!) यहाँ क्या समस्या है? – wouter88
क्या आप एक नई गतिविधि लोड कर रहे हैं या आप सिर्फ एक दृश्य को बढ़ा रहे हैं और ओवरले कर रहे हैं? – CaseyB