en iyisi PreferenceScreen sınıf için kaynak kodundan kod parçası başvurabilir burada neler olduğunu anlamak için:
@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();
}
yolu bunu geçici bir çözüm ayarlamak için olduğu tercih ekranına eklenen ilk tercihte onCreateView öğesini geçersiz kılarak ana arka plan rengi. Tabii bu, bazı özel kod gerektirir ama örnek bir beyaz arka plan ayarlamak için, korkunç karmaşık değil:
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);
}
}
Daha sonra tabii sizin xml değiştirerek bu özel kategorisi kullanmak gerekir, yani:
<PreferenceScreen android:title="main preferences">
<PreferenceScreen android:title="sub screen">
<com.justinbuser.livewallpapers.VideoChooserPreferenceCategory android:title="sub screen category" />
</PreferenceScreen>
</PreferenceScreen>
Ayrıca, Android PreferenceScreen öğesinin, bir başlığın ayarlanıp ayarlanmadığına bağlı olarak temayı değiştirdiğini fark ederseniz, yani bir başlık varsa, başlık çubuğunu içeren bir temayı etkinleştirir. Bu nedenle, başlık çubuğu istemiyorsanız, tercihler ekranını ayarlamaktan kaçınmalısınız ve statik olarak xml veya dinamik olarak kod aracılığıyla ayarlamalısınız.
İkinci PreferenceScreen'i eklemeden önce ve sonra nasıl göründüğünün ekran görüntüsünü gösterebilir misiniz? – CaseyB
Bu benim ana tercihlerim http://snapplr.com/fqxc, Bu yüzden "Herinneringen" (bildirimleri için Hollandaca) tıkladığınızda bana bu http://snapplr.com/gjzd gösterir (Ve bir ok yok Herinneringen'in yanında, orada bir tane olmalı!) Burada sorun nedir? – wouter88
Yeni bir etkinlik mi yüklüyorsunuz yoksa sadece bir görünümü şişiriyor ve üstleniyor musunuz? – CaseyB