签入函数时数组大小错误



我试图从Sparse布尔数组中的列表视图中获取所有选中的项,并将该数组传递给一个函数,该函数向用户显示一个对话框,单击"是"时,会在数据库中为Sparse数组中的选定项做一些事情。

我面临的问题是,在调用函数之前,我会检查稀疏数组的大小,它会显示正确的大小,但我传递给的函数,一旦被调用,它就会显示0的大小。我不知道为什么会发生这种事。

这是我正在做的--->

SparseBooleanArray checkedPositions;
switch (item.getId()) {
    case delete : 
        checkedPositions = listView.getCheckedItemPositions();
        Log.d(TAG, checkedPositions.size());
        confirmDeletion(checkedPositions);
        break;
}

这就是我要传递给--->的方法

confirmDeletion(final SparseBooleanArray checkedPositions) {
    Log.d(TAG, checkedPositions.size());
}

对于第一个日志,我得到了正确的大小,但在第二个日志中为0。我不知道出了什么问题。任何帮助都将不胜感激。

由于没有SSCCE,我可以猜测您的流不是您所想的那样。将堆栈跟踪添加到日志记录中,以便查看调用confirmDelation()方法的人员和时间。

另一个建议是确保您使用相同的对象。将toString添加到日志记录中,可以查看流的顺序以及是否使用了相同的对象。毕竟,同一个对象确实返回了相同的结果,所以看起来肯定有一些差距,并且您使用的是不同的对象。

相关内容

  • 没有找到相关文章

最新更新