我想使用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

07-24 16:35