android - Fragment 中的 notifyDataSetChanged() 不刷新 ListView

标签 android listview android-fragments

我正在尝试显示从 url 获取的项目列表,但我一次只想获取其中的 20 个...所以我实现了一个 OnScrollListener 来在用户最后一次访问时获取项目 ListView 的项目。

项目已获取,但我唯一的问题是 ListView 未更新:到目前为止,这是我的代码:

@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();
    }
  });

但 ListView 不会刷新 - 只有当我返回并重新打开 Activity 时 - 才会显示新数据。

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

最佳答案

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

关于android - Fragment 中的 notifyDataSetChanged() 不刷新 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20494478/

相关文章:

java - 是否可以在 Android 项目 Gradle 中使用 ApiFuture?

android - root 用户可以访问 Android 上的内部存储吗?

android - 在 ListFragment 中显示 ProgressDialog

c# - 每秒从不同线程更新 ListView

java - Android 工具栏中的内容编辑

android - Xamarin, ImageView 问题

Android、HttpURLConnection 和处理错误的凭据

java - 在 Android 中通过 Intent 传递信息后将项目添加到 listView

Android - 如何从 fragment 内部调用 fragment ?

java - 当我单击标题时,没有显示首选项