簡體   English   中英

在MainActivity中將string.xml資源值分配給字符串失敗

[英]Assigning strings.xml resource values to string in MainActivity fails

我正在嘗試本地化我的應用程序。 因此,我將所有字符串都移至strings.xml。 然后,我用字符串變量替換代碼中的所有硬編碼文本。 但是,每當嘗試將資源值分配給字符串變量時,都會出現運行時錯誤。

我的代碼如下所示:

public class MainActivity extends AppCompatActivity {
    private final String MSG_STATUS =
    this.getResources().getString(R.string.status);
...
}

strings.xml看起來像這樣:

<resources>
    <string name="status">My Status</string>
</resources>

這導致以下錯誤:

java.lang.RuntimeException:無法實例化活動ComponentInfo {com.xxx/com.xxx.MainActivity}:java.lang.NullPointerException:嘗試調用虛擬方法'android.content.res.Resources android.content.Context.getResources( )'在空對象引用上

到目前為止,我發現的所有示例都具有非常相似的方法。 因此,我很困惑為什么它不起作用。 我想這可能與上下文有關。

因為在調用super之后,您必須在onCreate中初始化Activity之前才能訪問資源。 在此之前,它的設置不正確。 在構造函數被調用之前,this指針也將不起作用,並且不能用於靜態初始化變量。

基本上,將所有代碼移到onCreate上。

暫無
暫無

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

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