Tôi có một PreferenceActivity
với một cây 2 mức độ PreferenceScreen
s, một cái gì đó như:PreferenceActivity cập nhật tóm tắt
<PreferenceScreen>
<PreferenceScreen android:key="A">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
<PreferenceScreen android:key="B">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
...
</PreferenceScreen>
Mỗi phòng trong số các màn hình ưu tiên cấp thấp hơn, ví dụ như, A và B, được thu thập hai mảnh có liên quan của dữ liệu . Tôi muốn tóm tắt cho các mục cha mẹ đó là kết hợp các giá trị hiện tại của hai tùy chọn phụ.
Tôi đã thử thêm onPreferenceChangeListener vào tùy chọn lá và cập nhật tóm tắt từ đó, nhưng dường như không mất. Chế độ ưu đãi đều được tạo lập trình trong phạm vi hoạt động, do đó, tôi đang làm một cái gì đó như thế này trong onCreate:
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;
}
});
sau đó tôi đã cố gắng để tìm một vị trí nơi tôi có thể được thông báo rằng tôi đã quay trở lại màn hình ưu tiên cấp cao nhất từ một trang con để tôi có thể cập nhật tại thời điểm đó. Tuy nhiên, tôi đang bối rối như thế nào các màn hình cấp thấp hơn đang được hiển thị. Có vẻ như chúng thực sự là các hộp thoại, không đầy đủ Các hoạt động vì onPause/onResume không được gọi khi di chuyển giữa chúng. Có một số phương pháp ở đâu đó mà tôi đang thiếu mà sẽ được gọi khi trở về trang cấp cao nhất?
Tôi cũng đã thử thêm sharedPreferenceChangeListener, như được mô tả here, nhưng điều đó dường như không bao giờ được gọi.
Bất kỳ ai có bất kỳ gợi ý nào về những gì tôi thiếu ở đây, hoặc bất kỳ phương pháp tiếp cận dễ dàng hơn nào tôi bị thiếu?
Cảm ơn đề xuất. Tôi đã ngừng làm việc này một thời gian trước, nhưng tôi sẽ thử nó khi tôi có cơ hội. –
Thật không may điều này đã không làm việc cho tôi. –
hoạt động tốt, cảm ơn – Yahia