ListView、GridView 获取选中的 item 的 bean 对象
我们如何可以直接使用 ListView 和 GridView 对象获取选中的 item 对象呢。
GridView 给我们提供了 mGridView.getCheckedItemPosition(); 方法,该方法可以从名字中看出方法功能是获取选中 item 的 position,但是往往会返回 -1,这是为什么呢,我们进一步看源码。
public int getCheckedItemPosition() {
if (mChoiceMode == CHOICE_MODE_SINGLE && mCheckStates != null && mCheckStates.size() == 1) {
return mCheckStates.keyAt(0);
}
return INVALID_POSITION; // -1
}
可以看到,有一个判断条件是设定 choiceMode,所以我们设定了 choiceMode,问题就解决了。
mGridView= (GridView) findViewById(R.id.mGridView);
mGridView.setChoiceMode(GridView.CHOICE_MODE_SINGLE);
所以,获得选中的 bean 也就是如下的方法了。
mGridView.getItemAtPosition(mGridView.getCheckedItemPosition());