如何在Android中使用Java类中的字符串资源?

tf7tbtn2  于 2023-03-21  发布在  Android
关注(0)|答案(4)|浏览(162)

在我的Java类中,我想使用strings.xml中的字符串资源。
为此,我想使用这样的方法:

getString(R.string.address)

如果我的课是一个活动,那么它的工作。
但是如果我的类是一个简单的Java类,我该如何使用它呢?

xlpyo6sf

xlpyo6sf1#

类没有上下文,而要使用字符串资源,则需要一个上下文。因此,只需从Activity调用该类,并给予一个参数context,然后在类构造函数中使用该上下文来获取字符串资源。
在定制类中,需要导入项目的R命名空间以获取资源ID。

import com.myrandomapp.R;

然后得到实际的字符串

context.getString(R.string.COOL_STRING)
4xrmg8kj

4xrmg8kj2#

您可以将Activity类的上下文传递给Java类并访问资源。
从您的活动课

Helper helper = new Helper(this);

您的Java类

public class Helper {

    Helper(Context c){
        c.getString(R.string.address);
    }
}
klr1opcd

klr1opcd3#

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

public class App extends Application{

    private static Context mContext;

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

    public static Context getContext(){
        return mContext;
    }
}

然后只需调用App.getContext().getResources()来获取任何资源值。
只要记住这个ContextApplication类型,所以有些东西这个Context不好用。阅读this了解进一步的信息。

dfty9e19

dfty9e194#

如果添加这一行,就可以完成:

// this is the object itself, and idString is the ID String bound to the literal.
this.getString(R.string.idString)

希望这篇评论对你有帮助!
布瑞斯

相关问题