Tôi đang sử dụng PreferenceManager.setDefaultValues(context,R.xml.preferences,false)
để đặt giá trị mặc định của tùy chọn trong ứng dụng và tôi nhận thấy rằng nếu tôi thêm tùy chọn mới thì PreferenceFragment
không hiển thị giá trị mặc định cho nó , ngay cả khi được đặt trong các tuỳ chọn preferences.xml ..PreferenceManager.setDefaultValues readAgain tham số và tùy chọn mới
Đây có phải là do tôi chỉ định readAgain là sai?
Tôi biết mình có thể thử và xem, nhưng tôi chỉ muốn chắc chắn rằng readAgain có nghĩa là cho mục đích này, tức là đọc lại các giá trị mặc định không đặt lại cài đặt người dùng mà phải đặt giá trị mặc định của thuộc tính mới. Nếu đây chính xác là mục đích của cờ readAgain, thì bạn có thể cho tôi lý do không phải lúc nào cũng đặt readAgain thành true, vì nó không đặt lại tùy chọn của người dùng?
Tôi nghĩ về chi phí có thể ... Tôi có ít hơn 10 tùy chọn nên không phải là vấn đề .. Có cách nào khác để theo dõi nếu tùy chọn mới được thêm vào và buộc tải lại tùy chọn chỉ trong sự kiện đó không? Ví dụ: tôi có thể hiểu khi nào một ứng dụng được khởi chạy lần đầu tiên sau khi được cập nhật không? Có lẽ tôi có thể sử dụng một sở thích như * last_version_seen * và kiểm tra nó khi ứng dụng được bắt đầu với phiên bản hiện tại và kích hoạt các tùy chọn tải lại với * readAgain * được đặt thành true, đúng không? –
Tham khảo mã của [ChangeLog] (http://code.google.com/p/android-change-log/). Tên giải thích việc sử dụng bộ mã đó. Tuy nhiên, sang một bên, bạn có thể thực hiện kiểm tra chạy đầu tiên một mình bằng cách đặt 'DefaultSharedPreference' cho điều đó. ;-). – Niranjan
@GianniCostanzi Để lại 'readagain' thành true. Nếu nó chỉ là 10 prefs, tại sao làm phiền với nhiều mã hơn. Nó không phải là lười biếng, nó chỉ là nó không phải là giá trị nó để tạo ra một pref cho mục đích đó của 10-20 prefs. Nhưng nếu bạn thích thư viện 'ChangeLog' tôi đã chỉ cho bạn, thì hãy thêm một chút mã vào tập tin đó' cl.firstRun() 'là ở đâu đó. :-). Nếu không, chỉ cần để nó là đúng. – Niranjan