我有一个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);
这将解决您的问题。