我有一個問題。 Android應用程序的資源:靜態訪問Android應用程序的資源?
我的應用程序有其他問題。模式(編輯/計劃/執行),我想用枚舉類型來描述。我會,不過,想填充字符串從資源string.xml文件阻止枚舉值,即代替
enum Mode {
EDIT ("edit"),
PLAN ("plan"),
EXEC ("exec");
String name;
Mode(String name) { this.name = name; }
@Override
public String toString() { return this.name; }
};
我想寫點東西像:
enum Mode {
EDIT (getResources().getText(R.string.mode_edit).toString()),
PLAN (getResources().getText(R.string.mode_plan).toString())),
EXEC (getResources().getText(R.string.mode_exec).toString()));
String name;
Mode(String name) { this.name = name; }
@Override
public String toString() { return this.name; }
}
這會例如允許使用資源文件修改模式的名稱,從而允許以後的名稱修改而無需代碼更改,國際化等。
問題是,對資源的標準訪問是通過一個Activity的getResources()方法它只在構造函數中(和實例方法期間)可用。然而,枚舉聲明是類的靜態初始化代碼的一部分。有沒有辦法以靜態方式訪問應用程序的資源?
邁克爾
圍繞這樣的背景下小心通過。你可以打開自己的討厭的內存泄漏。 – Drew 2010-08-27 05:14:18