Tôi có một ứng dụng có sử dụng ngoại lệ tùy chỉnh, như thế này:Sử dụng tài nguyên trong Exceptions
public class SomeException extends Exception{
private int iCode;
private String iMessage;
public SomeException(){
iCode = 201;
iMessage = **//Get the localized string R.string.error_201??**
}
@Override
public String getMessage() {
return iMessage;
}
@Override
public int getCode() {
return iCode;
}
}
Rõ ràng, tôi muốn lo bản địa hoá thông báo lỗi. Tôi có những giải pháp khả thi nhưng không ai trong số họ thỏa mãn tôi.
1) Vượt qua "Ngữ cảnh" tới hàm tạo và thực hiện ctx.getString (R.string.error_201) -> Không thành công, vì ngoại lệ này đôi khi được ném từ các lớp MODEL, vì vậy chúng không có Ngữ cảnh
2) Vượt qua "Ngữ cảnh" khi truy xuất thư trong hàm getMessage(), -> Không thành công, cần thiết để ghi đè phương thức siêu, hoạt động như tất cả ngoại lệ khác.
Giải pháp tôi có bây giờ: Mọi hoạt động trong ứng dụng của tôi có onCreate này:
public void onCreate(...){
Utils.RESOURCES = getResources();
...
}
đang rất bẩn ... Tôi không thích giải pháp. Câu hỏi của tôi là ,: có cách nào để truy cập các tài nguyên mà không có Bối cảnh không? Và quan trọng nhất, Làm thế nào một ứng dụng như tôi giải quyết vấn đề này?