android如何在java类中使用字符串资源

Nar*_*dra 31 string android

在我的java类中,我想使用strings.xml中的字符串资源.

因为我必须使用如下,

getString(R.string.address)
Run Code Online (Sandbox Code Playgroud)

如果我的课程是一项活动,那么它的参与.但是我的类是一个简单的java类,我怎么能在那里使用?

可能吗?谢谢

Jyo*_*sna 41

类没有上下文,并且使用字符串资源需要上下文.因此,只需从活动中调用类并提供参数,context并在类构造函数中使用该上下文来获取字符串资源.

在您的自定义类中,您需要为项目导入R命名空间以获取资源ID.

import com.myrandomapp.R;
Run Code Online (Sandbox Code Playgroud)

然后得到实际的字符串

context.getString(R.string.COOL_STRING)
Run Code Online (Sandbox Code Playgroud)

  • 这个答案是不完整的 - 要完成那些仍然有问题的人,你需要导入项目的R命名空间以获得资源ID.示例)import com.myappdomain.R(在这里使用你的NAMESPACE)然后获取实际的字符串context.getString(R.string.SOME_STRING) (16认同)

Lal*_*ani 17

您可以将Activity类的上下文传递给java类并访问资源.

来自您的活动类

 Helper helper = new Helper(this);
Run Code Online (Sandbox Code Playgroud)

你的Java类

public class Helper {

    Helper(Context c){
        c.getString(R.string.address);
    }
}
Run Code Online (Sandbox Code Playgroud)


Dar*_*art 12

您可以Application Context在自定义Application类中创建静态

public class App extends Application{

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = getApplicationContext();
    }

    public static Context getContext(){
        return mContext;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你只需要调用App.getContext().getResources()以获取任何资源值.

请记住这ContextApplication类型,因此有些东西Context不适合使用.阅读本文以获取更多信息.