如何从我选择的Gridview中获取所有项目?

时间:2014-01-03 08:00:47

标签: android gridview android-adapter

我使用片段extends Fragment implements MultiChoiceModeListener

class extends BaseAdapter

我可以获得唯一的位置当我从Gridview中选择项目时,如下面的代码:

public void onItemCheckedStateChanged(ActionMode mode, int position,
            long id, boolean checked) {
        // TODO Auto-generated method stub
        mActionText.setText(formatString(fileListView.getCheckedItemCount()));

    SparseBooleanArray checkedItems = fileListView.getCheckedItemPositions();

    Log.i(TAG, "fileListView.getCheckedItemPositions(); = " + checkedItems);
    if (checkedItems != null) {
        for (int i=0; i<checkedItems.size(); i++) {
            if (checkedItems.valueAt(i)) {
                String item = fileListView.getAdapter().getItem(
                                      checkedItems.keyAt(i)).toString();
                Log.i(TAG,item + " was selected");
            }
        }
    }
    mode.invalidate();

    }

该值类似于以下日志:

EG Player(21867): fileListView.getCheckedItemPositions(); = android.util.SparseBooleanArray@43625dc0
I/MJPEG Player(21867): tw.com.a_i_t.IPCamViewer.FileBrowser.Model.FileNode@43c4b7e8 was selected

项目的价值是什么意思?

是否有其他方法可以获取我从Gridview中选择的所有项目?

提前致谢。

2 个答案:

答案 0 :(得分:1)

Hello Martin,

       You can use the following code snippet :- 
view.setOnCheckedChangeListener

中的

                  if(isChecked){
                        extention = data[position];
                    }

如果数据是您在gridview中显示的项目,那么数据就是数组。

答案 1 :(得分:0)

您的BooleanArray具有所选项目的索引。但是,您正在尝试打印对象。你应该打印他们的索引。将Log.i(TAG, item + " was selected");更改为Log.i(TAG, i + " was selected");