Trong Android, bạn có thể lấy chủ đề hiện tại của một hoạt động dưới dạng đối tượng Resource.Theme
từ getTheme()
. Ngoài ra, bạn có thể đặt chủ đề thành một chủ đề khác thông qua id tài nguyên của chủ đề khác, như trong setTheme(R.style.Theme_MyTheme)
.Android: Cách lấy ID tài nguyên của chủ đề hiện tại?
Nhưng làm cách nào để tìm hiểu xem nó có đáng giá không - liệu chủ đề hiện tại đã là chủ đề mà tôi muốn đặt chưa? Tôi đang tìm một cái gì đó như getTheme().getResourceId()
, để viết một cái gì đó như:
protected void onResume() {
int newThemeId = loadNewTheme();
if (newThemeId != getTheme().getResourceId()) { // !!!! How to do this?
setTheme(newThemeId);
// and rebuild the gui, which is expensive
}
}
Bất kỳ ý tưởng nào?
Tôi không nghĩ ID tài nguyên là thuộc tính của lớp Chủ đề. Chủ đề có thể được tạo từ tệp xml nguồn lại, nhưng sau đó tham chiếu đến ID bị mất. Chủ đề chính nó có thể được thay đổi, và sau đó nó sẽ không có ý nghĩa để được gắn với một ID tài nguyên nhất định. Thậm chí nhiều hơn, chủ đề có thể được tạo ra trên bay trong mã. Bạn sẽ phải theo dõi ID nguồn tái sử dụng nào được sử dụng cho chính chủ đề hiện tại. – Anderson
Câu trả lời này sẽ giúp bạn. Hãy kiểm tra http://stackoverflow.com/a/26302184/4639479 –