java - Android - 从 ListViewAdapter 中删除项目然后刷新

标签 java android listview

我正在尝试从 ListViewAdapter 中删除一个项目,我已经实现了我的 setOnItemLongClickListener 执行此操作:

getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                            @Override
                            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                                                           int arg2, long arg3) {
                                Toast.makeText(getActivity(), "On long click listener", Toast.LENGTH_LONG).show();


                                return true;
                            }
                        });

它向我显示了一个Toast,验证它是否检测到onClickListener,我尝试将其删除:mItems.remove(arg2);,但没有任何反应.. .我正在寻找正确的答案,我发现我必须调用 notifyDataSetChanged(),但由于我无法调用此方法,所以我尝试了这个:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

        case R.id.ofertasRefresh:
            mItems.notifyAll();
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }

但是什么也没发生,LogCat 上没有错误,应用程序没有崩溃,什么也没有......你们能告诉我我错过了什么吗?

最佳答案

你应该这样做-

//作为类成员

ListViewDemoAdapter myAdapter;

然后在方法中-

myAdapter = new ListViewDemoAdapter(getActivity(), mItems);
setListAdapter(myAdapter);

现在在 onItemClickListener 中,

mItems.remove(arg2);
myAdapter = new ListViewDemoAdapter(getActivity(), mItems);
setListAdapter(myAdapter);

请注意,这不是最好的解决方案,但它应该适合您的情况。

关于java - Android - 从 ListViewAdapter 中删除项目然后刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29237773/

相关文章:

java - Android Listview 和 textWatcher

java - Android createChooser出现在Activity前面

android - 自定义AdapterView

java - P6Spy 不使用 HSQLDB 记录 hibernate 更新

Android 拨号器应用程序

android - 如何在 Android 上分析传入的短信?

android - 是否可以更改 ListView 中项目的大小?

android - 使用自定义适配器填充 ListView

java - Spring Boot 测试 - 我不想为特定测试加载所有 @Configuration 类

java - 使用 spring MVC 将文件夹上传到 mysql 时出错