4 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
已經有一些很好的答案,解釋了為什么非靜態Context
方法的混合物getText()
不能用于你的static final String
。
一個很好的問題是:你為什么要這樣做?您正在嘗試String
從strings
資源加載a ,并將其值填充到public static
字段中。我認為這是為了讓你的其他一些類可以訪問它?如果是這樣,就沒有必要這樣做了。而是將a傳遞Context
到您的其他類并context.getText(R.string.TTT)
從其中調用。
public class NonActivity { public static void doStuff(Context context) { String TTT = context.getText(R.string.TTT); ... }}
并從你這稱呼Activity
:
NonActivity.doStuff(this);
這將允許您訪問您的String
資源,而無需使用public static
字段。

慕碼人8056858
TA貢獻1803條經驗 獲得超6個贊
對于在搜索中找到此內容的其他人:
當我不小心使用類名而不是對象名調用函數時,我經常得到這個。這通常是因為我給他們太相似的名字:P
即:
MyClass myclass = new MyClass();// then laterMyClass.someFunction();
這顯然是一種靜態方法。(對某些事情有好處)但我真正想做的事情(在大多數情況下是)
myclass.someFunction();
這是一個如此愚蠢的錯誤,但每隔幾個月,我浪費了大約30分鐘搞亂“MyClass”定義中的變量來解決我真正做錯的事情,這只是一個錯字。
有趣的說明:堆棧溢出突出了語法,使錯誤在這里顯而易見。
添加回答
舉報
0/150
提交
取消