单击外部窗口小部件时保留选择

时间:2014-01-15 17:37:20

标签: android android-gridview android-selector

我有一个我用来创建日历的gridview。当我点击日历/ gridview外部时,我无法突出显示初始选择。日历/ gridview占据视图的上半部分并且在片段中,相应的列表将在下面。片段中网格的布局如下:

  <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中使用选择器。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

替换:

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

使用:

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

我认为它应该可以解决您的问题,如果您没有使用ImageView,请将演员表更改为您正在使用的视图类型。