- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在按照 Android guide 上的分步指南使用 Preference Fragments| .
我正在尝试使用此 fragment 设置一些首选项,因此稍后在代码中我可以检查每个变量的值以执行相应的操作。
Mi Preference fragment 工作正常。但是,当我尝试在代码的其他地方恢复 CheckedBoxPreference 的值时,它总是返回 false。
这是首选项 xml 文件:
android:persistent="true"
>
<>
android:title="NOTIFICACIONES"
android:key="pref_key_storage_settings">
<>
android:key="sendMail"
android:defaultValue="false"
android:persistent="true"
android:summary="Send emails to contacts"
android:title="E-mail"/>
这是我为使用 SharedPReferences 而完成的类(class)
public class Prefs{
private static Prefs myPreference;
private SharedPreferences sharedPreferences;
private static final String NOMBRE_PREFERENCIAS = "MisPreferencias";
public static Prefs getInstance(Context context) {
if (myPreference == null) {
myPreference = new Prefs(context);
}
return myPreference;
}
private Prefs(Context context) {
sharedPreferences = context.getSharedPreferences(NOMBRE_PREFERENCIAS,context.MODE_PRIVATE);
}
public Boolean getBoolean(String key)
{
boolean returned = false;
if (sharedPreferences!= null) {
returned = sharedPreferences.getBoolean(key,false);
}
return returned;
}
}
这就是我检查选项是否被选中的方式,这样我就可以向客户发送/不发送电子邮件
Prefs preferences = Prefs.getInstance(getApplicationContext());
if(preferences.getBoolean("sendMail")
{
// .... send email
}
正如我所说,奇怪的是它在设置 fragment 上持久存在(如果我选择选项 sendEmmail,即使我关闭应用程序并重新打开它也会被选中。但是,当我使用我的方法检查值时, 它总是返回 false。
Tôi đang làm gì sai?
Cảm ơn
1 Câu trả lời
由于您使用的是首选项 fragment ,因此您应该使用 PreferenceManager.getDefaultSharedPreferences(android.content.Context)
检索您的偏好。您目前正在使用命名首选项。
Từ developer.android.com on PreferenceFragment :
Shows a hierarchy of Preference objects as lists. These preferences will automatically save to SharedPreferences as the user interacts with them. To retrieve an instance of SharedPreferences that the preference hierarchy in this fragment will use, call getDefaultSharedPreferences(android.content.Context) with a context in the same package as this fragment.
所以行
sharedPreferences = context.getSharedPreferences(NOMBRE_PREFERENCIAS,context.MODE_PRIVATE);
应该替换为:
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
关于android - SharedPreferences 变量始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34537143/
Theo tình hình hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời được hỗ trợ bằng sự kiện, tài liệu tham khảo hoặc chuyên môn, nhưng câu hỏi này có thể gây ra tranh luận, tranh cãi, thăm dò ý kiến hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
Trong khi viết mã, tôi tự hỏi mình câu hỏi này: Liệu cách này có nhanh hơn: if(false) return true; else return false; so với cách này không? nếu(sai) trả về đúng; trả về
Làm thế nào để thực hiện "trả về" trong điều kiện logic? Điều này hữu ích trong những tình huống như thế này: checkConfig() || return false; var iNeedThis=doSomething() || return false
Đây là bản demo biểu thức chính quy của tôi Như câu hỏi đã nói: Nếu số đầu tiên là 1 thì trả về 1 Nhưng nếu là 145 thì trả về 145 Nhưng nếu là 133 thì trả về 133 Dữ liệu mẫu a: K'8134567 K'81345678
Khi xem qua các câu đố và câu trả lời trong phần Hỏi & Đáp của Code Golf, tôi đã tìm thấy giải pháp này cho câu trả lời tham chiếu phương pháp dài nhất và khó hiểu nhất trả về 1, int foo(void) { return! 0; } int bar(
Tôi muốn trả về JSON bên dưới. { "name": "jackie" } người đưa thư báo lỗi cho tôi. Mô tả Người mới bắt đầu và không mong đợi tham gia Spring Boot ở đây. 1 ngày tuổi. Có một cách đúng đắn để
Miễn là "is" trả về True thì "==" có trả về True không? Trong [101]: np.NAN là np.nan là np.NaN Out[101]: Đúng Trong [102]: np.NAN
Tôi cần biết thông tin chi tiết về tất cả sinh viên đang ở phòng số 6 hoặc 7 hoặc không ở phòng nào cả. Nếu họ ở trong những phòng khác thì nói một cách đơn giản, tôi không muốn có bản ghi đó. Sơ đồ của tôi là: students(roll_no, name,class,.
Tôi có một biểu mẫu mà tôi gửi tới php để chèn vào cơ sở dữ liệu mysql thông qua ajax. Mọi thứ đều ổn, php trả về giá trị "true", nhưng trong ajax thì lại hiển thị thông báo false. Ở đây bạn có thể xem mã php:
Tôi đang gặp phải một vấn đề so sánh giá trị rất lạ và không thể giải thích được trong Kotlin. Mã sau đây in ra dữ liệu giả lớp Foo ( val a: Byte ) fun main() { val NUM
Lưu ý rằng điều này không dành riêng cho Protractor. Vấn đề là Angular 2 sử dụng dịch vụ Testability tích hợp có tên là Protractor. Thước đo góc gọi Testabil
Trong cửa sổ gỡ lỗi, tất cả các biểu thức sau đều trả về 1. Ứng dụng.WorksheetFunction.CountA(Cells(4 + (i - 1) * rows_per_record, 28) & "
Tôi đang sử dụng jsonplaceholder (http://jsonplaceholder.typicode.com/) cục bộ. Tôi đang thử nghiệm các cuộc gọi GET và POST của mình thông qua extjs rest proxy
Sau đây là đoạn mã (đã sửa đổi) mà Postman cung cấp để gọi trang của tôi thành công. var client = new RestClient("http://sub.example.com/wp-json/wp/v2
Câu hỏi này đã có câu trả lời ở đây: Làm gì với các vấn đề mysqli? Các lỗi như mysqli_fetch_array(): Đối số #1 phải
Tôi đoán là tôi hơi kém hiểu biết về đối số dòng lệnh C. Tôi đã xem lại một số mã cũ của mình nhưng dù là phiên bản nào thì nó vẫn bị lỗi phân đoạn. Cách chạy nó là ./foo -n num (trong đó num là số do người dùng nhập vào dòng lệnh) nhưng bằng cách nào đó nó không hoạt động
Tôi đã viết một lớp để xử lý các kết nối đường ống được đặt tên và nếu tôi tạo một thể hiện, đóng nó lại, sau đó thử tạo một thể hiện khác, gọi CreateFile() trả về INVALID_HANDLE_VALUE và GetLastError
Mặc dù is_writable() trả về giá trị true nhưng tôi vẫn không thể ghi vào tệp. Tất nhiên, tập tin đó tồn tại và có thể đọc được. Đây là mã: $file = "data"; echo file_get_contents($file
Biến $response trong đoạn mã sau là NULL, mặc dù nó phải là giá trị của yêu cầu SOAP. (Danh sách thủy triều). Khi tôi gọi $client->__getLastResponse() tôi nhận được từ dịch vụ SOAP
Tôi đã tìm kiếm câu trả lời trên nhiều diễn đàn trực tuyến nhưng có vẻ như không có câu trả lời nào phù hợp với tình huống của tôi... Tôi đang sử dụng Windows 7, VS2010. Tôi có một ứng dụng sử dụng bộ đếm thời gian để gọi chức năng làm mới thanh tác vụ. Chức năng thanh tác vụ chứa lệnh gọi đến LoadI
Tôi là một lập trình viên xuất sắc, rất giỏi!