我需要运行此行而不是来自我的主要活动,而是来自AsyncTask的onPostExecute方法。
listView.setAdapter (new MyAdapter(this));
listView是我在主要活动中声明的ListVIew。
我想要这样做的原因是因为我希望AsynchTask在调用setAdapter之前完成其doInbackground mathod。
问题在于我不能按原样编写该行(使用"这个)..我可以写什么参数而不是"这个"?
或有没有办法检查doInBackground是否已完成主要活动?
答案 0 :(得分:1)
您无法在AsyncTask中编写“this”的原因是因为您当时处于AsyncTask的上下文中,并且您无法使用该上下文,因为它无效。
要解决此问题,您可以使用在代码中其他位置获取的活动的上下文。你可以这样做:
Context ctxt = this;
在onPostExecute()中,您可以使用上下文ctxt设置列表适配器。
答案 1 :(得分:0)
尝试:
listView.setAdapter (new MyAdapter(MyActivity.this));