如何将网格视图项设置为选中

时间:2013-09-02 18:07:46

标签: android gridview

我有一个GridView,它使用数组适配器来填充数据。

默认情况下,当显示GridView时,我必须将其中一个项目显示为已选中。我使用了gridview.setselected(),但没有将GridView项显示为已选中(我的意思是项目的背景未更改)。是否有任何方法可以在加载网格视图时显示选定的特定项目。请建议

5 个答案:

答案 0 :(得分:15)

在我意识到我真正想要的东西是要检查的项目之前,我昨天有点挣扎。即。

gridview.setItemChecked(position, true);

答案 1 :(得分:5)

GridView.setSelected()实际上是从View继承的,只是将您布局中的整个GridView设置为已选中。

您要找的是GridView.setSelection(int position)从位置0开始选择GridView中的当前项目。

另一个有用的函数是GridView.getFirstVisblePostion(),它可以用来存储GridView上的当前位置(如果它很大且可滚动),以便在从实例状态恢复时可以恢复它(比如说轮换)或其他。

在处理此类事情时,查看小部件/对象的Android Developer documentation始终是有用的。

答案 2 :(得分:2)

我希望这会对你有所帮助

 gridView.requestFocusFromTouch();  
       gridView.setSelection(1);

答案 3 :(得分:1)

getView()适配器方法中执行以下操作

if(row != null) {
    if(position == selectedPosition){
        set required background color
    } else {
        set background color to Color.TRANSPARENT
    }
}

在onItemClick方法中设置Adapter.selectedPosition值并调用notifydatasetchanged(),然后继续执行所需的逻辑。

<GridView>项xml集listSelectorandroid:color/transparent

答案 4 :(得分:-1)

使用以下方法检查

GridView.setBackgroundResource(R.drawable.new_image_to_be_shown);

这样您就可以将所选项目的背景更改为新图像。

如果您想更改所选项目的颜色,请使用 -

GridView.setBackgroundColor(int color);

这将解决您的问题。