Java 如何在主类之外的新URL中使用资源

Java 如何在主类之外的新URL中使用资源,java,android,Java,Android,我可以使用: mWebView.loadUrl(getString(R.string.web_app_url)); 在与我的Android应用程序中的布局相关联的主类中没有任何问题,但是当我尝试在同一Java文件中的另一个类中使用它时,我遇到了问题 如何在变量声明中使用字符串资源,如下所示(示例代码的最后一行): 类BlueBadgeParkingDotComReachableTest扩展异步任务{ 私人活动; BlueBadgeParkingDotcomreachable测试(预检查活动){

我可以使用:

mWebView.loadUrl(getString(R.string.web_app_url));
在与我的Android应用程序中的布局相关联的主类中没有任何问题,但是当我尝试在同一Java文件中的另一个类中使用它时,我遇到了问题

如何在变量声明中使用字符串资源,如下所示(示例代码的最后一行):

类BlueBadgeParkingDotComReachableTest扩展异步任务{
私人活动;
BlueBadgeParkingDotcomreachable测试(预检查活动){
这个。活动=活动;
}
@凌驾
受保护的布尔doInBackground(Void…params){
int statusCode=-1;
字符串returnedContent=“”;
试一试{
URL URL=新URL(getString(getClass().getResource(R.string.web\u app\u status\u URL));
首先,这个类中没有识别出
getString
方法,通常的修复建议也没有出现在Studio中,我已经为此挣扎了好几个星期,不得不使用硬编码的URL字符串。

getString()
需要
上下文
。大多数情况下,您都是从扩展
活动
的类中调用此方法。由于
活动
扩展
上下文
,因此您可以免费获得该方法。当您需要调用
getString()时
从另一个类中,您必须显式使用
活动
上下文
对象。幸运的是,您的
异步任务
中有一个对象,因此您可以这样做

activity.getString(...)
现在,您只需要在括号中找到正确的内容。请记住,在Android中,字符串资源是通过
R.string
中的标识符引用的。这意味着您需要这样做

activity.getString(R.string.web_app_status_url)
getString()
需要一个
Context
。大多数情况下,您都是在扩展
Activity
的类中调用该方法的。由于
Activity
extends
Context
,因此您可以免费获得该方法。当您需要调用
getString()时
从另一个类中,您必须显式使用
活动
上下文
对象。幸运的是,您的
异步任务
中有一个对象,因此您可以这样做

activity.getString(...)
现在,您只需要在括号中找到正确的内容。请记住,在Android中,字符串资源是通过
R.string
中的标识符引用的。这意味着您需要这样做

activity.getString(R.string.web_app_status_url)

只需执行
getString(R.string.web\u app\u status\u url)
。是否尝试使用url url=newURL(activity.getString(getClass().getResource(R.string.web\u app\u status\u url)));您需要getString的上下文。@LoveForDroid您已经掌握了。希望最终我能掌握他们称之为Java的诀窍——现在我尝试的每件事都会以这样简单的方式结束,但与我使用过的其他语言相比,这似乎是陌生的。(如果您将此作为答案发布,我会接受)@LoveForDroid如果你把你的评论改成一个陈述而不是一个问题,这实际上是一个很好的答案。因为这个句子以“你试过了吗…”开头,我以为你是在问一个问题来澄清而不是真正回答问题。@LoveForDroid还有,
getClass().getResource()
在Android中是不必要的。只需执行
getString(R.string.web\u app\u status\u url)
。是否尝试使用url url url=new url(activity.getString(getClass().getResource(R.string.web\u app\u status\u url));您需要getString的上下文。@LoveForDroid您已经掌握了。希望最终我能掌握他们称之为Java的诀窍——现在我尝试的每件事都会以这样简单的方式结束,但与我使用过的其他语言相比,这似乎是陌生的。(如果您将此作为答案发布,我会接受)@LoveForDroid如果你把你的评论改成一个陈述而不是一个问题,这实际上是一个很好的答案。因为这个句子以“你试过了吗…”开头,我以为你是在问一个问题来澄清而不是真正回答问题。@LoveForDroid还有,
getClass().getResource()
在Android中是不必要的。感谢您的详细解释(当然还有解决问题的方法),感谢您的详细解释(当然还有解决问题的方法)