Tôi có một đơn giản thiết lập số (không sử dụng có thể chỉnh sửa) được định nghĩa trong một sở thích XML như sau:SharedPreferences.getInt() kết quả trong ClassCastException - Tại sao?
<EditTextPreference
android:key="@string/numeric_val"
android:defaultValue="0" />
Và tôi đọc nó bằng tuyên bố đơn giản này:
sharedPrefs.getInt(getString(R.string.numeric_val), 3)
Nó hoạt động, nhưng khi Tôi cố gắng đọc nó, lần đầu tiên sau khi cài đặt ứng dụng, nó tạo ra một ClassCastException
.
documentation nói rằng getInt()
"Ném ClassCastException nếu có tùy chọn với tên này không phải là int." - và tôi biết rằng tùy chọn này được xác định rõ ràng là <EditTextPreference>
(một chuỗi?) Nhưng, nếu đây là lý do ngoại lệ, tôi phải sử dụng SharedPreferences.getInt()
như thế nào?
Tôi biết tôi có thể sử dụng SharedPreferences.getString()
để thay thế và sau đó tự phân tích cú pháp/chuyển đổi, nhưng sau đó mục đích của SharedPreferences.getInt()
là gì?
Cảm ơn bạn đã giải thích rất giáo dục này. +1 và chấp nhận. – uTubeFan