Tôi có một số tài nguyên được xác định, ví dụ .:Tiếp cận được các nguồn lực từ một ArrayAdapter trong Android
<color name="lightGrey">#FFCCCCCC</color>
<integer name="KEY_POSITION_ARM">2</integer>
... và tôi có một ArrayAdapter hiển thị các mục để TextView. Tôi đang cố truy cập các giá trị có mã như:
keyPosition = getResources().getInteger(R.integer.KEY_POSITION_ARM);
moduleDataView.setTextColor(getResources().getColor(R.color.darkgreen));
... nhưng tôi gặp lỗi như "Phương thức getResources() không xác định cho loại ContinuityAdapter". (ContinuityAdapter mở rộng ArrayAdapter)
Có cách nào tốt để giải quyết vấn đề này không?
Cảm ơn
Đây là một ví dụ:
switch (currentModule.keyPosition) {
case activity.getResources().getInteger(R.integer.KEY_POSITION_ARM):
moduleDataView.keyPosition.setText("TEST");
moduleDataView.keyPosition.setTextColor(Color.GREEN);
break;
case R.integer.KEY_POSITION_ARM:
moduleDataView.keyPosition.setText("ARM");
moduleDataView.keyPosition.setTextColor(Color.RED);
break;
}
Các trường hợp đầu tiên đưa ra một lỗi, và lần thứ hai không nhưng không sử dụng giá trị từ tập tin XML hoặc. Mặc dù như bạn nói tôi chỉ có thể sử dụng giá trị R ... miễn là tôi sử dụng nó theo cách đó ở khắp mọi nơi. Chỉ cần không chắc chắn nếu điều này được coi là 'thực hành tốt nhất'. Cảm ơn
Cảm ơn. Tôi đã thử nó và tôi nghĩ rằng nó không hoạt động, nhưng bây giờ tôi nhận ra rằng tôi đã nhận được một lỗi khác làm: 'switch (foo) { case activity.getResources(). GetInteger (R.integer.KEY_POSITION_ARM):' The tuyên bố trường hợp rõ ràng đòi hỏi một biểu thức liên tục, mặc dù tài nguyên là hằng số. Tôi có bị mắc kẹt khi sử dụng câu lệnh if? – ARQuattr
Tôi cần xem thêm mã. Nói chung, tôi đã cố gắng tránh các trường hợp chuyển đổi hoặc tôi sử dụng id tài nguyên trực tiếp (ví dụ: trường hợp R.id.xyz). – user802421
Tôi đã chỉnh sửa câu hỏi để bao gồm một ví dụ về mã tốt hơn. Cảm ơn – ARQuattr