来自AsyncTask的setAdapter方法

时间:2014-10-02 16:07:14

标签: android android-asynctask

我需要运行此行而不是来自我的主要活动,而是来自AsyncTask的onPostExecute方法。

listView.setAdapter (new MyAdapter(this)); 

listView是我在主要活动中声明的ListVIew。

我想要这样做的原因是因为我希望AsynchTask在调用setAdapter之前完成其doInbackground mathod。

问题在于我不能按原样编写该行(使用"这个)..我可以写什么参数而不是"这个"?

或有没有办法检查doInBackground是否已完成主要活动?

2 个答案:

答案 0 :(得分:1)

您无法在AsyncTask中编写“this”的原因是因为您当时处于AsyncTask的上下文中,并且您无法使用该上下文,因为它无效。

要解决此问题,您可以使用在代码中其他位置获取的活动的上下文。你可以这样做:

Context ctxt = this;

在onPostExecute()中,您可以使用上下文ctxt设置列表适配器。

答案 1 :(得分:0)

尝试:

listView.setAdapter (new MyAdapter(MyActivity.this));