Android如何在课堂上访问资源?

时间:2015-07-06 13:21:14

标签: java android exception android-resources

我正在尝试从资源中获取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>

4 个答案:

答案 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());
        }
      }
}