我有一个GridView
,它使用数组适配器来填充数据。
默认情况下,当显示GridView
时,我必须将其中一个项目显示为已选中。我使用了gridview.setselected()
,但没有将GridView
项显示为已选中(我的意思是项目的背景未更改)。是否有任何方法可以在加载网格视图时显示选定的特定项目。请建议
答案 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集listSelector
到android:color/transparent
答案 4 :(得分:-1)
使用以下方法检查
GridView.setBackgroundResource(R.drawable.new_image_to_be_shown);
这样您就可以将所选项目的背景更改为新图像。
如果您想更改所选项目的颜色,请使用 -
GridView.setBackgroundColor(int color);
这将解决您的问题。