簡體   English   中英

從Android資源中獲取靜態內容的更好方法?

[英]Better way to get static content from resources in android?

我編寫了一個名為DateUtils的類,在該類中我試圖像這樣通過靜態字段獲取資源

    public class DateUtils{
    private static String value;

    public static string getValue(Context context){
            if (value== null) {
            value= context.getResources().getString(R.string.my_value);
            }
            return value; }
    }

但是我找到了答案。 如何從靜態上下文中獲取資源內容? 他們在其中創建了一個應用程序類,並獲取該應用程序類的引用以為靜態字段分配值。

這樣的缺點是,不能保證在某些靜態初始化代碼嘗試獲取Context對象之前,將已調用非靜態onCreate()。 這意味着您的調用代碼將需要准備好處理null值,這將使這個問題的要點失效。參考在Android上獲取“上下文”的靜態方法?

我的問題是哪種是初始化靜態字段的更好方法?

我的問題是哪種是初始化靜態字段的更好方法?

都不行 擺脫static領域。

您的應用程序需要處理用戶在您的進程仍在運行時更改其語言的情況。 您需要在更適當的位置檢索此字符串資源,以便在進行配置更改時開始使用正確的字符串。 就目前而言,對於您的實現(無論如何填充static字段),您永遠都不會更改此字符串的語言,因此在某些情況下該字符串將是錯誤的。

如果答案是“永遠不會翻譯此字符串”,請擺脫字符串資源,並將字符串作為final static字段放入Java代碼中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM