Làm thế nào để loại bỏ một số cặp khóa/giá trị khỏi SharedPreferences? Tôi đã đặt và tôi để loại bỏ nó từ prefs.Làm thế nào để loại bỏ một số cặp khóa/giá trị khỏi SharedPreferences?
Trả lời
SharedPreferences mySPrefs =PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(String key);
editor.apply();
Trình chỉnh sửa ở đây là trình chỉnh sửa sharedPreferences.
SharedPreferences.Editor.remove(key)
commit();
Điều quan trọng cần lưu ý rằng, trừ khi bạn đang có kế hoạch làm một cái gì đó có giá trị trở lại của cam kết() cuộc gọi, hoàn toàn không có lý do cho việc sử dụng đồng bộ cam kết() gọi thay vì không đồng bộ áp dụng() gọi.
Hãy nhớ rằng nếu bạn đang gọi điều này từ chủ đề chính/UI, giao diện người dùng bị chặn cho đến khi commit() hoàn tất. Điều này có thể mất đến khoảng 100ms như apposed đến khoảng 5ms cho việc áp dụng. Điều đó có vẻ không nhiều, nhưng nếu được thực hiện liên tục trong suốt một ứng dụng, nó chắc chắn sẽ tăng lên.
Vì vậy, trừ khi bạn đang có kế hoạch làm một cái gì đó như thế này, hy vọng về một chủ đề riêng biệt:
editor.remove(String key);
boolean success = editor.commit();
if (!success) {
// do something
}
Bạn nên thay vì được làm điều này:
editor.remove(String key);
editor.apply();
Thông tin
Chỉ cần kiểm tra sharedpref
lớp học được mở rộng đến Map
đó là lý do tại sao có.210 phương pháp
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.remove(String key);
editor.apply();
Đây editor là biên tập viên sharedPreferences.
Đây là cách tôi giải quyết vấn đề này.
Trước tiên tôi tạo ra một thể hiện của SharedPreference như
SharedPreferences mobilePreference;
sau đó tôi sử dụng sharedPreference này như
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
Here "in.bhartisoftwares.amit.allamitappsthree" là tên gói của tôi và tôi đang sử dụng Ngữ cảnh.MODE_PRIVATE, vì tôi muốn thao tác tùy chọn chia sẻ này chỉ dành cho tên gói này.
Sau đó, tôi đang xóa các sharedPreference chọn (key của sharedPreference của tôi là mobileString) như sau:
mobilePreference.edit().remove("mobileString").commit();
Xem các mã như đầy đủ dưới đây:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
mobilePreference.edit().remove("mobileString").commit();
Nó rất đơn giản:
private SharedPreferences sharedPreferences() {
return PreferenceManager.getDefaultSharedPreferences(mContext);
}
public void clearSharedPreferences() {
sharedPreferences()
.edit()
.remove(SOME_KEY_1)
.remove(SOME_KEY_2)
.remove(SOME_KEY_3)
.apply();
}
- 1. Làm thế nào để loại bỏ một cặp cụ thể khỏi một bội số C++?
- 2. Làm thế nào để loại bỏ một hàng khỏi JTable?
- 3. Làm thế nào để loại bỏ FacesMessages khỏi FacesContext?
- 4. Làm thế nào để loại bỏ EGIT khỏi Eclipse Kepler?
- 5. Làm thế nào để loại bỏ GMSPolygon khỏi GMSMapView
- 6. Làm thế nào để loại bỏ R.java khỏi JavaDoc
- 7. Làm thế nào để loại bỏ một đối tượng khỏi một ArrayList trong Java?
- 8. Làm thế nào để bạn loại bỏ một cột khỏi một mảng có cấu trúc?
- 9. Làm thế nào để loại bỏ một chuỗi con cụ thể khỏi một chuỗi?
- 10. Máy chủ SQL: Làm thế nào để bạn loại bỏ dấu chấm câu khỏi một trường?
- 11. XSL: làm thế nào để sao chép một cây, nhưng loại bỏ một số nút?
- 12. Làm thế nào để loại bỏ một mô-đun Python?
- 13. Làm thế nào để loại bỏ một mục được kéo ra khỏi danh sách của nó?
- 14. Làm thế nào để loại bỏ một mục khỏi danh sách (ListField) theo id trong MongoEngine?
- 15. Làm thế nào để loại bỏ dòng đầu tiên khỏi một chuỗi chứa XML?
- 16. Làm thế nào để loại bỏ extender khỏi một quan sát hiện có?
- 17. Làm thế nào để loại bỏ dấu gạch chéo ngược thoát khỏi một var javascript?
- 18. Làm thế nào để loại bỏ một _UIAlertNormalizingOverlayWindow
- 19. với $ location.search(): làm thế nào để loại bỏ một số từ url khi nó rỗng
- 20. Làm cách nào để loại bỏ báo giá kép khỏi giá trị của cột? .?
- 21. loại bỏ các cặp phần tử khỏi mảng có khối u là NaN (hoặc một giá trị khác) trong Python
- 22. Làm cách nào để lặp qua loại enum trong khi bỏ qua một số giá trị?
- 23. Làm thế nào để loại bỏ AspxAutoDetectCookieSupport
- 24. Làm thế nào để tránh các cặp trùng lặp/tìm thấy một cặp trong multimap?
- 25. Làm thế nào để loại bỏ elasticsearch?
- 26. Làm thế nào để chèn một cặp std :: cặp bên trong một std :: cặp?
- 27. Làm thế nào để loại bỏ 0 từ một chuỗi
- 28. Làm thế nào để loại bỏ giá trị bằng không từ một mảng song song
- 29. Làm thế nào để loại bỏ một XmlNode từ XmlNodeList
- 30. Làm thế nào để loại bỏ một nhịp tại chỗ?
Một bổ sung nhỏ cho câu trả lời này. Từ tài liệu android: "Nếu bạn không quan tâm đến giá trị trả lại và bạn đang sử dụng điều này từ chuỗi chính của ứng dụng, hãy cân nhắc sử dụng hàm apply() thay thế." –
@silwar, tại sao bạn đã chỉnh sửa lại() trở lại cam kết()?biết rằng tài liệu hướng dẫn sử dụng apply() trừ khi chúng ta muốn làm việc với giá trị trả về, và cả câu hỏi hoặc câu trả lời đều không phù hợp với trường hợp đó –