我可以使用:
mWebView.loadUrl(getString(R.string.web_app_url));
在我的Android应用程序中与布局相关联的主类中没有任何问题,但是当我尝试在同一个Java文件中的另一个类中使用它时,我遇到了问题。
如何在变量声明中使用字符串资源,如下所示(示例代码的最后一行):
class BlueBadgeParkingDotComReachableTest extends AsyncTask<Void, Void, Boolean> {
private PreLoadChecks activity;
BlueBadgeParkingDotComReachableTest(PreLoadChecks activity){
this.activity = activity;
}
@Override
protected Boolean doInBackground(Void... params) {
int statusCode = -1;
String returnedContent = "";
try{
URL url = new URL(getString(getClass().getResource(R.string.web_app_status_url)));
首先,在此课程中无法识别getString
方法,并且常见的修正建议不会在Studio中弹出,而且我已经在这几周内一直在努力解决这个问题。必须使用硬编码的URL字符串。
答案 0 :(得分:2)
getString()
需要Context
。大多数情况下,你从一个扩展Activity
的类中调用它。由于Activity
扩展了Context
,因此您可以免费获得该方法。当您需要从其他类调用getString()
时,您必须明确使用Activity
或Context
对象。幸运的是,你的AsyncTask
中有一个,所以你可以做到
activity.getString(...)
现在你只需要在括号中找到正确的东西。请记住,在Android字符串资源中使用R.string
中的标识符引用。这意味着你需要做
activity.getString(R.string.web_app_status_url)