2013-01-07 29 views
12

Bir iki seviyeli PreferenceScreen vardır:Android iç içe PreferenceScreen'de yukarı/geri düğmesini gösterme?

<PreferenceScreen> 
general settings 
    <PreferenceScreen android:key="adv_settings"> 
    more advanced settings 
    </PreferenceScreen> 
</PreferenceScreen> 

Benim sorunum ikinci ekranı otomatik eylem çubuğunda geri/yukarı düğmesini görünmüyor olmasıdır. Yukarı düğmesini adv_settings'de nasıl görüntüleyebilirim?

+1

Bunu düşünmek zaten burada yanıtlanabilir: http://stackoverflow.com/questions/4970605/return-from-nested-android-preferencescreen-to-previous-preferencescreen – ThePerson

+0

bu soru otomati hakkında cally onclick geri gidiş, sadece o kadar zor olmamalıdır "geri düğmesi" göstermek istiyorum – lisovaccaro

+2

Hey, bu sizin aradığınız olabilir mi? http://stackoverflow.com/questions/16374820/action-bar-home-button-not-functional-with-nested-preferencescreen – jimmithy

cevap

6

Uygulama temanızla kullanılacak özel bir ActionBar stili yazarak oku ekleyebilirsiniz.

res/values-v11/styles.xml: (veya mevcut styles.xml eklemenin)

<?xml version="1.0" encoding="utf-8"?> 
<resources>  
    <style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> 
    <item name="android:displayOptions">showHome|homeAsUp|showTitle</item> 
    </style> 
</resources> 

Ardından AndroidManifest.xml bu tema uygulamak:

<application android:theme="@style/MyTheme"> 


Not: bu oku eklemek için bariz bir yol aramaya olmalıdır:

getActionBar().setDisplayHomeAsUpEnabled(true); 

İkinci ekran yüklü, ama öyle ok dinamik başarısız ayarı, şu anda görünür bir karşıt olarak getActionBar() her zaman birinci kademe İşlem Çubuğu nesnesi döndüren bir Android böcek, olduğunu düşünüyorum sonra .

+3

Okları ekler, ancak etkinliği PreferenceActivity olarak tanımlasanız bile tıklamada hiçbir şey olmaz –

2

Daha fazla çalışma olabilir, ancak her birinin kendi PreferenceFragment'iyle iki PreferenceAtivity dosyası oluşturabilirsiniz. Her PreferenceFragment'in kendi PreferenceScreen XML'i (birinci düzey ekran ve ikinci düzey ekran) bulunur. Birinci seviye ekranından, etiket içindeki bir Niyet ile ikinci PreferenceActivity'i başlatırsınız.

ActionBar bar = getActionBar(); 
bar.setDisplayHomeAsUpEnabled(true); 

ve sonra da ev düğmesi için bir işleyici vardı: İkinci PreferenceActivity size bunu yaparak ev simge de ayarlayabilirsiniz

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    if (item.getItemId() == android.R.id.home) { 
     finish(); 
    } 

    return false; 
} 

Varlıklar:

FirstPreferenceActivty 
FirstPreferenceFragment 
pref_first.xml (layout with PreferenceScreen and Prefernce nodes) 

SecondPreferenceActivty 
SecondPreferenceFragment 
pref_second.xml (layout with PreferenceScreen and Prefernce nodes)