2014-10-02 54 views
-1

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

listView.setAdapter (new MyAdapter(this)); 

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

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

的问题是,因为这是我不能写该行(以“这个)我..what参数可以写入,而不是‘本’?

或者有没有什么办法来检查是否有doInBackground从主要活动结束

+0

传递活动的上下文,而不是'这个' – 2014-10-02 16:08:34

+0

你可以请更特别?我在哪里声明活动上下文? ... – Ohad 2014-10-02 16:10:47

回答

1

的原因,你不能写“这”的的AsyncTask里面是因为你的AsyncTask的当时的环境中,你不能使用上下文因为它无效。

要解决此问题,您可以使用您在代码中其他位置获得的活动的上下文。您可以执行如下操作:

Context ctxt = this; 

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

+0

所以ctxt应该在我的主要活动中声明..好吗? – Ohad 2014-10-02 16:22:40

+0

是的..你应该在你的AsyncTask所在的活动中宣布它是完美的 – ucsunil 2014-10-02 16:25:22

+0

! thanx ... – Ohad 2014-10-02 16:38:02

0

尝试:?

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

可能会工作..我gonne检查它 – Ohad 2014-10-02 16:14:14