2

当我在 onPostExecute 中运行以下代码时,它给了我一个异常:java.lang.NullPointerException

getApplicationContext().getResources().getString(R.string.lbl_sth);
getBaseContext().getResources().getString(R.string.lbl_sth);

R.string.lbl_sth绝对正确。如果我在 中的两行以上运行onCreate,则这两行都按预期工作。

4

3 回答 3

3

不要getBaseContext()在您的AsyncTask... 中使用,而是将您Activity的上下文作为上下文AsyncTask。然后getResources().getString(...)Activity直接调用了。

于 2012-08-05T05:01:00.113 回答
0

您应该在 AsyncTask 的构造函数中传递来自 Resources 的字符串:

public MyAsyncTask(String lblString) {
    this.lblString = lblString; 
}

您可以从 Activity/Fragment 构造和执行这样的任务:

new MyAsyncTask(getString(R.string.lbl_sth)).execute();
于 2015-07-21T17:28:51.543 回答
-2

尝试使用 getActivity().getResources().getString(R.string.lbl_sth);

于 2014-06-02T20:28:22.047 回答