我有一个GridView
使用数组适配器来填充数据的。
默认情况下,当GridView
显示时,我必须将其中一项显示为选中状态。我用过gridview.setselected()
,但它没有显示GridView
选中的项目(我的意思是项目的背景没有改变)。加载网格视图时,有什么方法可以显示选定的特定项目。请建议
昨天我有点挣扎,然后才意识到我真正想要的是要检查的项目。IE
gridview.setItemChecked(position, true);
GridView.setSelected()
实际上是从您的布局中继承的,View
并且只是将整个GridView
布局设置为选定的。
您正在寻找的是从零位置开始GridView.setSelection(int position)
选择当前项目。GridView
另一个有用的功能是GridView.getFirstVisblePostion()
可以用来存储当前位置GridView
(如果它很大且可滚动),以便在从实例状态(比如旋转)或其他情况下恢复时可以恢复它。
在处理此类事情时,查看您的小部件/对象的Android 开发人员文档总是很有用的。
我希望这能帮到您
gridView.requestFocusFromTouch();
gridView.setSelection(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 项中设置listSelector
为android:color/transparent
用以下方法检查
GridView.setBackgroundResource(R.drawable.new_image_to_be_shown);
这将使您可以将所选项目的背景更改为新图像。
如果您想更改所选项目的颜色,请使用 -
GridView.setBackgroundColor(int color);
这将解决您的问题。