我想使用Gridview并在一个片段中实现多选。
但是它显示类似The operator ! is undefined for the argument type(s) Object
的错误。
我不知道该怎么解决,有人可以教我怎么做吗?
我的Fragment.java中的代码
private FileListAdapter mFileListAdapter ;
GridView fileListView = (GridView) view.findViewById(R.id.browserList) ;
fileListView.setAdapter(mFileListAdapter) ;
fileListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ViewTag viewTag = (ViewTag) view.getTag();
mFileListAdapter.changeState(position);
}
}) ;
return view ;
}
还有FileListAdapter.java中的代码
public class FileListAdapter extends BaseAdapter {
public void changeState(int position) {
if(isMultiSelect) {
imageStatues.put(position, !imageStatues.get(position));
}
notifyDataSetChanged();
}
}
错误
The operator ! is undefined for the argument type(s) Object
发生在imageStatues.put(position, !imageStatues.get(position));
有人可以教我如何解决这个问题吗?
提前致谢。
最佳答案
你可能想要
imageStatues.get(position) != null
或类似的东西。
另外,如果
imageStatues.get(position)
应该是Boolean
,则可能使用的是原始映射,并且需要在imageStatues
的声明中指定通用参数类型。您也可以尝试将imageStatues.get(position)
强制转换为Boolean
。