Tôi đang tạo một dự án thư viện cho một số ứng dụng Android. Tất cả các ứng dụng đều có một số chức năng phổ biến mà tôi muốn đưa vào dự án thư viện nhưng các chức năng của dự án thư viện yêu cầu sử dụng các hằng số cụ thể của ứng dụngAndroid, Cách tốt nhất để cung cấp các hằng số ứng dụng cụ thể trong một dự án thư viện?
Vì vậy, tôi đang tìm cách cung cấp các chức năng thư viện với tên của các hằng số và cho phép từng ứng dụng để định nghĩa chúng
một ví dụ về một hằng số ứng dụng cụ thể và làm thế nào nó được sử dụng trong dự án thư viện
public class AppConstants {
public static final long APP_ID = 6;//Needs to be set for each app
}
public static long getCurrentAppId(Context context) {
return getLongPreference(context, CURRENT_APP_ID_KEY, AppConstants.APP_ID);
}
Đây chỉ là một ví dụ về khoảng 60 hằng số mà cần phải được xác định cho mỗi ứng dụng cho một số lượng lớn các chức năng thư viện
Rõ ràng tôi sẽ thường chỉ nhập khẩu/include file app_constants.java cụ thể dự án nhưng điều này là không thể thực hiện trong các tập tin dự án thư viện như nó đã không có một đầu mối về các ứng dụng cụ thể (đúng như vậy)
Vì vậy, cách tốt nhất để có mỗi ứng dụng cụ thể ghi đè các hằng số là gì?
Cập nhật Tôi mất nhiều thời gian để quyết định câu trả lời tuyệt vời nào phù hợp nhất với nhu cầu của tôi (Cảm ơn mọi người) Cuối cùng tôi đã chọn giải pháp xml. Tôi không đặc biệt thích nó vì nó clutters lên nguồn ứng dụng của tôi và tôi đã nghiêm túc xem xét việc sử dụng giải pháp giao diện nhưng giải pháp xml không làm việc độc đáo
Nếu bạn xác định các nguồn lực với cùng id trong thư viện của bạn và ứng dụng của bạn, bạn nhận được giá trị từ ứng dụng nếu tồn tại, từ thư viện khác. Vì vậy, đó là một cách tiếp cận thực sự tốt đẹp cho các giá trị bạn muốn ghi đè lên mỗi ứng dụng. Vì nó sử dụng hệ thống tài nguyên, bạn thậm chí có thể thực hiện các giá trị cho mỗi cấu hình (landscape vs portrait etc) – zapl