android - 是否有更多 "Android"方法让我的项目在 GridView 中保持 "Selected"状态?

标签 android gridview

我构建了一个 GridView,由 RelativeLayoutsAdapter 填充,其中包含顶级 ImageViewImageView 直到用户点击该项目才会显示,从而为单个 View 创建“selected”效果。当用户点击不同的项目时,我会在先前选择的 View 上隐藏所选项目。

这工作正常,但我很好奇是否有更原生的 Android 方式来处理这种情况。我没有看到任何类型的 setSelected()(ish)方法,但也许我忽略了什么?

最佳答案

View 的任何子类都应该有一个setSelected() 方法,其中包括RelativeLayout。您应该在适配器中跟踪所选位置,然后在您的 getView() 方法中:

myRelativeLayout.setSelected(selectedPosition == position);

如果您使用处理 state_selected 的选择器,这将起作用。对于您的方法,您可以说:

myImageView.setVisibility(selectedPos == pos ? View.VISIBLE : View.INVISIBLE);

当您注册点击时(在您的OnItemSelectedListenerOnItemClickListener 中,或者您正在使用的任何内容)只需调用适配器的setSelectedPosition() 方法,然后调用适配器的 notifyDatasetChanged() 方法。

关于android - 是否有更多 "Android"方法让我的项目在 GridView 中保持 "Selected"状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15168944/

相关文章:

c# - 为什么 GridView 不在 asp :Panel 中显示数据

Android:布局在 gridview 的底部(在它的末尾)

android - 如何提高 gridview 性能 (android)

java - 为什么我的AsyncTask在主线程上运行?

android - 麦克风从手机扬声器中拾取声音并产生反馈

android - 从android通知中删除辅助图标

android - 将 xml 用于第二个 Activity 的问题(R.id 问题)

java - 如何设置特定 ListView 行的文本/图像 - Android?

java - 我的 GridView 未显示

c# - 动态移动表格单元格(向上/向下)-javascript