android轻扫以解除listview赢得的删除项目

时间:2014-07-25 00:44:48

标签: android listview android-arrayadapter android-adapter

I'm using this library使用滑动制作列表视图以关闭功能。

我正在使用ArrayAdapter并使用此代码创建一个轻扫来解除侦听器

 SwipeDismissListViewTouchListener touchListener =
                new SwipeDismissListViewTouchListener(
                        listView,
                        new SwipeDismissListViewTouchListener.DismissCallbacks() {
                            @Override
                            public boolean canDismiss(int position) {
                                return true;
                            }

                            @Override
                            public void onDismiss(ListView listView, int[] reverseSortedPositions) {
                                for (int position : reverseSortedPositions) {
                                    mAdapter.remove(mAdapter.getItem(position));
                                }
                                mAdapter.notifyDataSetChanged();
                            }
                        });
        listView.setOnTouchListener(touchListener);
        // Setting this scroll listener is required to ensure that during ListView scrolling,
        // we don't look for swipes.
        listView.setOnScrollListener(touchListener.makeScrollListener());

但是每次尝试滑动它似乎都有效,但随后该项目又回来了。

log cat并没有抛出任何异常。

之前有人有这个错误吗?请帮忙。

1 个答案:

答案 0 :(得分:4)

当我使用Roman Nurik的轻扫时,我遇到了同样的问题。在适配器中创建自己的remove方法:

public void remove(int position) {
        yourList.remove(position);
    }

你应该这样称呼:

@Override
public void onDismiss(ListView listView, int[] reverseSortedPositions) {
    for (int position : reverseSortedPositions) {
        mAdapter.remove(position);
        }
    mAdapter.notifyDataSetChanged();
}