8

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

默认情况下,当GridView显示时,我必须将其中一项显示为选中状态。我用过gridview.setselected(),但它没有显示GridView选中的项目(我的意思是项目的背景没有改变)。加载网格视图时,有什么方法可以显示选定的特定项目。请建议

4

5 回答 5

15

昨天我有点挣扎,然后才意识到我真正想要的是要检查的项目。IE

gridview.setItemChecked(position, true);
于 2014-05-07T23:55:44.503 回答
5

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

您正在寻找的是从零位置开始GridView.setSelection(int position)选择当前项目。GridView

另一个有用的功能是GridView.getFirstVisblePostion()可以用来存储当前位置GridView(如果它很大且可滚动),以便在从实例状态(比如旋转)或其他情况下恢复时可以恢复它。

在处理此类事情时,查看您的小部件/对象的Android 开发人员文档总是很有用的。

于 2013-09-02T18:19:11.210 回答
3

我希望这能帮到您

 gridView.requestFocusFromTouch();  
       gridView.setSelection(1);
于 2013-09-13T07:27:17.510 回答
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

于 2013-09-15T17:27:42.947 回答
-1

用以下方法检查

GridView.setBackgroundResource(R.drawable.new_image_to_be_shown);

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

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

GridView.setBackgroundColor(int color);

这将解决您的问题。

于 2013-09-13T04:38:27.343 回答