我使用片段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中选择的所有项目?
提前致谢。
答案 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");