签入函数时,数组大小错误

时间:2015-04-03 10:01:33

标签: java android arrays sparse-array

我正在尝试从稀疏布尔数组中的列表视图中获取所有选中的项目,并将该数组传递给一个函数,该函数向用户显示一个对话框,并且单击yes会在数据库中为所选项目中的某些内容执行操作。稀疏数组。

我面临的问题是在调用函数之前我检查稀疏数组的大小并且它显示了正确的大小但我传递给它的函数,一旦被调用它就显示大小为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。我无法弄清楚出了什么问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

另一个建议是确保您使用相同的对象。添加toString以进行日志记录以查看流的顺序以及使用相同的对象。在所有相同的对象确实返回相同的结果后,它肯定看起来有一些差距,你正在使用不同的对象。