Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择器在android gridview中不工作_Android_Android Studio_Android Listview_Android View_Android Gridview - Fatal编程技术网

选择器在android gridview中不工作

选择器在android gridview中不工作,android,android-studio,android-listview,android-view,android-gridview,Android,Android Studio,Android Listview,Android View,Android Gridview,我像这样为android Gridview设置了一个选择器 mygridview.setSelector(R.drawable.my_background); 当我在gridview中单击一个子项时,它工作正常(背景已设置),背景在gridview中失去焦点后不会消失 但是,当我手动选择一个子视图时,如mygridview.setSelection(position)它正在设置背景,但是当它从gridview失去焦点时,背景就会消失 顺便说一下,我的选择器是这样的: <selector

我像这样为android Gridview设置了一个选择器

mygridview.setSelector(R.drawable.my_background);
当我在gridview中单击一个子项时,它工作正常(背景已设置),背景在gridview中失去焦点后不会消失

但是,当我手动选择一个子视图时,如
mygridview.setSelection(position)
它正在设置背景,但是当它从gridview失去焦点时,背景就会消失

顺便说一下,我的选择器是这样的:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="#08c246"/>
            <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>

        </shape>
    </item>
</selector>

我试过将android:state设置为选中,但没有用。

我想: mGridView.setChoiceMode(GridView.CHOICE\u MODE\u SINGLE)

item.xml
my_background.xml
我想: mGridView.setChoiceMode(GridView.CHOICE\u MODE\u SINGLE)

item.xml
my_background.xml

我终于得到了答案

  • 不要像这样在gridview中设置选择器
    mygridview.setSelector(R.drawable.my_background)
  • 如下所示更改drawable:

    <item android:state_activated="true">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="#08c246"/>
            <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>
    
        </shape>
    </item>
    

    
    

  • 使上述内容可绘制为cellview的背景(用于制作gridview的每个单元格的视图)

  • 要通过编程从gridview中选择单元格,只需执行mygridview.setItemChecked(pos,true)


  • 这对我有用

    我终于得到了答案

  • 不要像这样在gridview中设置选择器
    mygridview.setSelector(R.drawable.my_background)
  • 如下所示更改drawable:

    <item android:state_activated="true">
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="#08c246"/>
            <padding android:left="-5dp" android:bottom="-5dp" android:right="-5dp" android:top="-5dp"/>
    
        </shape>
    </item>
    

    
    

  • 使上述内容可绘制为cellview的背景(用于制作gridview的每个单元格的视图)

  • 要通过编程从gridview中选择单元格,只需执行mygridview.setItemChecked(pos,true)


  • 这对我有用

    你想要实现什么?使用一个变量来存储您选择的变量,并在getView()中自定义它。我希望gridview的子视图中有一个看起来像最初单击的@TinySunlight您希望实现什么目标?使用一个变量来存储您选择的变量,并在getView()中自定义它。我希望gridview的子视图中有一个看起来像最初单击的@Tinysunlight这不好用。谢谢你的关注。我得到了一个解决方案,我现在就贴出来。这个不太好用。谢谢你的关注。我得到了解决方案,我现在就发布