Ben PreferenceScreen
s 2 seviyeli ağacı bulunan PreferenceActivity
var gibi bir şey:PreferenceActivity güncelleme özeti
<PreferenceScreen>
<PreferenceScreen android:key="A">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
<PreferenceScreen android:key="B">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
...
</PreferenceScreen>
alt düzey tercih ekranlarının her biri örneğin A ve B iki veri ilişkili parçalarını topluyor . Bu ana öğeler için özetin, iki alt tercihin mevcut değerlerinin bir kombinasyonu olması istiyorum.
Yaprak tercihlerinde onPreferenceChangeListener'ı eklemeyi ve özeti oradan güncelleştirmeyi denedim, ancak görünmüyor. tercihleri tüm etkinliklerin içinde programlı oluşturulur, böylece onCreate böyle bir şey yapıyorum:
leafListPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// do some work
prefScreenA.setSummary(/* get new summary based on newValue */);
return true;
}
});
ben o zaman ben üst düzey tercihleri ekrana döndü haberdar edilebileceği bir yer bulmaya çalıştılar Bir alt sayfadan, bu noktada güncelleyebilmem için. Ancak, alt seviye ekranların nasıl görüntülendiği konusunda kafam karıştı. Aslında diyaloglar gibi görünür, OnPause/onResume aralarında taşırken arandığından beri tam aktiviteler değildir. En üst seviyeye geri döndüğünüzde çağrılacak bir yer var mı?
Ayrıca, here açıklandığı gibi bir sharedPreferenceChangeListener eklemeyi denedim, ancak bu hiç çağrılmadı.
Burada eksik olduğum veya eksik olduğum herhangi bir yaklaşım hakkında herhangi bir ipucu var mı?
Öneriniz için teşekkürler. Bir süre önce bunun üzerinde çalışmayı bıraktım, ama bir şans bulduğumda bunu deneyeceğim. –
Ne yazık ki bu benim için çalışmadı. –
harika çalıştı, teşekkürler – Yahia