[英]Android how can I access resources in class?
我正在嘗試從資源中獲取 String app_name ,但我一直在獲取空對象引用。 我該如何解決?
package com.testandroid;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import java.util.HashMap;
public class Test extends Activity {
public Test() {
try {
String hello = getString(R.string.app_name);
} catch (Exception e) {
Log.d("myLogs", e.getMessage());
}
}
}
<resources>
<string name = "app_name">Name</string>
</resources>
string hello = getResources().getString(R.string.app_name);
永遠不要覆蓋活動的構造函數,這會導致嚴重的問題。 如果您需要在構建活動時初始化某些內容,請在 onCreate 中進行,在構造函數中資源尚未准備好使用,因此此時您無法使用它們。
public class Test extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout_here);
String hello = getString(R.string.app_name);
Log.d("Log", hello);
}
這也應該放在values
文件夾中的strings.xml
中
<resources>
<string name = "app_name">Name</string>
</resources>
好的,最簡單的方法是使用 Context。
public class Test extends Activity {
public Test(Context context) {
try {
String hello = context.getResources().getString(R.string.app_name)
} catch (Exception e) {
Log.d("myLogs", e.getMessage());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.