gpt4 book ai didi

android - 在 Android 的 GridView 中设置高亮项

转载 作者:行者123 更新时间:2023-11-29 18:01:26 38 4
gpt4 key购买 nike

有时候,我真的很惊讶,简单的事情却很难找到解决方案。

我有一个 GridView有 6 列和多行。每个项目都是一个以颜色为背景的正方形。当我选择一个项目时,它会突出显示为 listSelector已设置

<GridView
android:id="@+id/listFontColors"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:layout_margin="8dip"
android:drawSelectorOnTop="true"
android:gravity="center"
android:horizontalSpacing="3dp"
android:listSelector="@drawable/color_list_selected"
android:numColumns="6"
android:padding="0dip"
android:scrollbars="none"
android:stretchMode="columnWidth"
android:verticalSpacing="3dp" />

当我打开布局时,包含 GridView我想突出显示之前选择的项目。因为它后面的适配器有一个 ArrayList<Object>很容易找到需要突出显示的位置。问题是执行实际的突出显示。

我做了很多测试:

listColors.requestFocus();
listColors.setSelection(9);

if (v != null) {
v.requestFocus();
v.setPressed(true);
v.setSelected(true);
}
listColors.performItemClick(listColors, 9, listColors.getItemIdAtPosition(9));

这些都不起作用。有什么想法吗?

最佳答案

最简单的方法是保存 position 并在 Adapter 类中的 getView() 方法中检查它。

if(selected_position = position){
view.setBackgroundResource(selected_resource_id);
}
else{
view.setBackgroundResource(resource_id);
}

然后只需在您的适配器上调用 notifyDataSetChanged()

关于android - 在 Android 的 GridView 中设置高亮项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15897911/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com