smartTable icon indicating copy to clipboard operation
smartTable copied to clipboard

删除数据时报索引越界

Open yebin254126 opened this issue 4 years ago • 7 comments

添加删除列,点击该列时,如果是最后一行可以正常删除,如果不是最后一行,则数据删除后,没有更新colum的datas,然后遍历时引发索引越界 ,代码如下,尝试手动删除也不行。

            List<TurnIn> src = data_table.getTableData().getT();
            src.remove(position);
            data_table.getTableData().setT(src);
            table_columns.forEach(col -> {
                col.getDatas().remove(position);
            });
            data_table.notifyDataChanged();

yebin254126 avatar Jul 28 '21 14:07 yebin254126

添加删除列,点击该列时,如果是最后一行可以正常删除,如果不是最后一行,则数据删除后,没有更新colum的datas,然后遍历时引发索引越界 ,代码如下,尝试手动删除也不行。

            List<TurnIn> src = data_table.getTableData().getT();
            src.remove(position);
            data_table.getTableData().setT(src);
            table_columns.forEach(col -> {
                col.getDatas().remove(position);
            });
            data_table.notifyDataChanged();

我试了 你的这个问题用data_table.invalidate()就能解决了 而我的问题是不remove,只修改其中一个类的属性,这个方法无效,不知道什么原因,郁闷。

xinyangmaojian avatar Nov 08 '21 03:11 xinyangmaojian

不要用notifyDataChanged()

xinyangmaojian avatar Nov 08 '21 03:11 xinyangmaojian

。。神奇。 这方法不就是用来更新的吗

lozn00 avatar Nov 18 '21 02:11 lozn00

不要用notifyDataChanged()

一样的崩溃

lozn00 avatar Nov 18 '21 02:11 lozn00

      getBinding().tableview.notifyDataChanged();
            getBinding().tableview.invalidate();

这样虽然可以,但是高度问题。。

lozn00 avatar Nov 18 '21 02:11 lozn00

用这个SmartTable.getTableData().getT().remove 动态删除某一行数据,表格没变化,删除最后一行直接报 : java.lang.IndexOutOfBoundsException: Index: 4, Size: 0

mSmartTable.notifyDataChanged(); mSmartTable.invalidate();

JackyBower avatar Jul 28 '22 01:07 JackyBower