android - 单击外部小部件时保留选择

标签 android android-gridview android-selector

我有一个用于创建日历的 GridView 。当我在日历/ GridView 外单击时,我无法保持初始选择突出显示。日历/ GridView 占据 View 的上半部分,位于 fragment 中,相应的列表将位于下方。我在 fragment 中的网格布局如下:

  <GridView
     android:id="@+id/weekGrid"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:listSelector="@color/green"
     android:numColumns="7" >
  </GridView>

为了突出显示初始单元格,我在设置适配器后使用以下命令设置其位置:

  calGrid.requestFocusFromTouch();
  calGrid.setSelection(startPosition);

根据需要,初始选择为绿色。但是,一旦我点击离开 gridview,绿色背景就会消失。如果我要选择另一个单元格然后单击远离 gridview,则不会发生这种情况。在这种情况下,突出显示仍然存在。我试过在 gridview 上设置一个 onFocusChange 监听器。但这在 gridview 外部单击时不会被触发。我也尝试过在 android:listSelector 中使用选择器。

预先感谢您的帮助。

最佳答案

试试这个:

替换:

calGrid.requestFocusFromTouch();
calGrid.setSelection(startPosition);

与:

((ImageView)calGrid.getChildAt(startPosition)).setSelected(true);

我认为它应该可以解决您的问题,如果您没有使用 ImageView,请将转换更改为您正在使用的 View 类型。

关于android - 单击外部小部件时保留选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21144419/

相关文章:

android - 类型不匹配 : inferred type is AutoMigration but KClass<*> was expected

android - 无限项的无限滚动

java - Gridview onclick 监听器不工作

android - GridView 内的项目在上下滚动时再次加载

android - GridView 项目选择器选中状态未出现

android - 选择器中的 9-Patch 显示黑点

android - 与同时异步任务的 SQLite 的多个连接

javascript - 点击 Android EPSON 热敏打印来自 WebView 的数据?如果找不到打印机?

安卓 : why PhoneCallListener still alive after activity finish?

android - 在选择器 StateListDrawable 中使用 attr 引用