我正在尝试从资源中获取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>
答案 0 :(得分:2)
string hello = getResources().getString(R.string.app_name);
答案 1 :(得分:0)
从不,永远不会覆盖activity的构造函数,这可能会导致严重的问题。如果你需要在构造活动时初始化某些内容,请在onCreate中执行,在构造函数资源中不准备使用,所以此时你不能使用它们。
答案 2 :(得分:0)
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);
}
此外,这应该放在strings.xml
文件夹
values
<resources>
<string name = "app_name">Name</string>
</resources>
答案 3 :(得分:-1)
好的,最简单的方法是使用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());
}
}
}