首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从notifyDataSetChanged()内部调用notifyDataSetChanged()

如何从notifyDataSetChanged()内部调用notifyDataSetChanged()
EN

Stack Overflow用户
提问于 2014-02-21 22:38:43
回答 1查看 704关注 0票数 3

我有一个ArrayAdapter,里面有一个AsyncTask,但是我不知道如何从onPostExecute调用notifyDataSetChanged

示例:

代码语言:javascript
复制
public class ColorAdapter extends ArrayAdapter<Color> {

  List<Color> colorList;
  Context context;
  ....

  public ColorAdapter(Context context, List<Color> list) {
    this.context = context; this.colorList = list;  
  }

  public View getView (final int position, final View view, final ViewGroup parent) { 
   .....
  }

  class DeleteColorTask extends AsyncTask <String, String, String> {
   int colorId;
   DeleteColorTask (int colorId) {this.colorId = colorId;} 

   protected String doInBackgroud (String ... args) {
     //call to server to delete the color
     colorList.remove(colorList.indexOf(...));
   }
   protected void onPostExecute(String s) {
     //HOW CAN I CALL notifyDataSetChanged() here?? this.notifyDataSetChanged() doesn't work since I am inside DeleteColorTask class
   }
  }
}

我从我的活动中得出如下结论:

代码语言:javascript
复制
  adapter = new ColorAdapter(context, colorsList);
  setListAdapter(adapter);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-21 22:42:47

你可以这样称呼它:

代码语言:javascript
复制
ColorAdapter.this.notifyDataSetChanged();

顺便说一句,启动这个AsyncTask更合适的地方是它的主机片段/活动,为什么?AsyncTasks有时会比您预期的时间更长,如果您不适当地管理它们的生命周期,它们可能会带来麻烦。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21946604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档