Android Java 更改 ListView 以选择多行用于删除而无需单独的类

问题描述

我搜索了高低,我开始认为这是不可能的,但我有一个自定义 ListView,它处于膨胀的布局中并放在一个弹出窗口上。这些线是使用适配器由布局文件制成的。列表中的每一项都是可点击的,并将用户带到不同的列表。我还想这样做,当我长按一个项目时,它选择该项目,然后允许我选择多行,然后我有一个单独的按钮来删除它们。需要明确的是,我不希望每一行都有一个复选框(没有空间)。只是要突出显示的行。我被困在“选择该项目”部分,更不用说“选择多行”了。我将把我的代码截断到相关部分。注意:masterRecord 是 ListView 的名称。

initModel()
private void fillList() {

        int numRows = mainDB.numRowsMaster();

        if (numRows == 0) {
            Toast.makeText(getApplicationContext(),"Nothing to load!",Toast.LENGTH_SHORT).show();
            return;
        }

        cursor = mainDB.getAllRowsMaster();

        startManagingCursor(cursor);

        String[] fromFieldNames = new String[]{DBAdapter.KEY_MASNAMECOL,DBAdapter.KEY_MASLASTDATECOL,DBAdapter.KEY_MASTOTALTIMEASCLOCKCOL};
        int[] toViewIds = new int[]{R.id.rowName,R.id.rowLastDate,R.id.rowTotalTime};

        SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this,R.layout.master_list_row,cursor,fromFieldNames,toViewIds);

        masterRecord.setAdapter(cursorAdapter);
        masterRecord.setLongClickable(true);

    }

吐司只是为了让我可以看到屏幕上正在运行或未运行的内容。 “这管用吗?”是我长按时唯一显示的内容。什么都没有被选中,如果我一直长按,它只会继续做同样的事情。如果我然后短按,它只会执行正常的短按操作。

我找到了 Checkable 小部件并兴奋不已,但似乎也无法让它发挥作用。我见过的教程和其他信息为 ListView 提供了一个单独的类,但这似乎有点过分了。这真的是唯一的方法吗?如果我错过了任何相关代码,请告诉我,我将进行编辑以包括在内。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)