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

时间:2016-02-19 21:10:17

标签: java android

我可以使用:

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字符串。

1 个答案:

答案 0 :(得分:2)

getString()需要Context。大多数情况下,你从一个扩展Activity的类中调用它。由于Activity扩展了Context,因此您可以免费获得该方法。当您需要从其他类调用getString()时,您必须明确使用ActivityContext对象。幸运的是,你的AsyncTask中有一个,所以你可以做到

activity.getString(...)

现在你只需要在括号中找到正确的东西。请记住,在Android字符串资源中使用R.string中的标识符引用。这意味着你需要做

activity.getString(R.string.web_app_status_url)