android中 – Fragment中的notifyDataSetChanged()不刷新listview

我正在尝试显示从网址中提取的项目列表,但我只想一次获取其中的20个…所以我已经实现了一个OnScrollListener来获取用户在最后一项上的项目列表显示.

提取的项目,但我唯一的问题是列表视图没有更新:这是我的代码到目前为止:

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
    parentView = inflater.inflate(R.layout.activity_event_speakers_alphabetically,container,false);
    listView = (ListView) parentView
            .findViewById(R.id.speakersAlphabeticallyActivityList);
    nameOrderedMembers.addDataBatch(communityMembers);
    nameOrderedAdapter = DelegateViewStateAdapterFactory
            .makeUserlistadapter(getActivity(),nameOrderedMembers.getSortedData(),DelegateViewStateAdapterFactory.OrderType.NAME);
    listView.setAdapter(nameOrderedAdapter);
    AQuery aQuery = new AQuery(listView);
    aQuery.id(R.id.speakersAlphabeticallyActivityList).scrolled(new endlessscrollListener());
    listView.setonItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) {
            if (nameOrderedAdapter.getItem(arg2) instanceof User) {
                User u = (User) nameOrderedAdapter.getItem(arg2);
                Intent i = new Intent(getActivity(),UserProfileFragmentActivity.class);
                startActivity(i);
            }
        }
    });

    return parentView;
}

现在 – 在onPostExecute方法的AsynkTask中 – 我像这样通知适配器:

communityMembers.addAll(newMembers);
getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
    nameOrderedAdapter.addAll(communityMembers);
    nameOrderedAdapter.notifyDataSetChanged();
    }
  });

但是列表视图不会刷新 – 只有当我返回并重新打开活动时 – 才会显示新数据.

那么如何通知适配器有新数据要显示

解决方法

在notifyDataSetChanged()之后调用listView.invalidateViews()

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...