当我将setOnItemSelectedListener添加到Android中的Gallery时,状态选择器停止工作。你知道如何避免吗?

当我将setOnItemSelectedListener添加到Android中的Gallery时,状态选择器停止工作。你知道如何避免吗?,android,image-gallery,Android,Image Gallery,我有一个非常简单的图片库,我有一个XML文件,带有用于各种状态的选择器。在我添加setOnItemSelectedListener之前,它工作得非常好(selected的背景是蓝色的,rest的背景是红色的)。然后,状态选择器停止更改所选项目的背景。只需将所有背景显示为未选中。显然,侦听器超越了布局控件,但不知道如何避免它 这是我的密码: 1。start.java ImageAdapter的一部分 public View getView(int position, View convertVie

我有一个非常简单的图片库,我有一个XML文件,带有用于各种状态的选择器。在我添加setOnItemSelectedListener之前,它工作得非常好(selected的背景是蓝色的,rest的背景是红色的)。然后,状态选择器停止更改所选项目的背景。只需将所有背景显示为未选中。显然,侦听器超越了布局控件,但不知道如何避免它

这是我的密码:

1。start.java

ImageAdapter的一部分

public View getView(int position, View convertView, ViewGroup parent) {            
ImageView image = new ImageView(contex);
image.setImageResource(gallery.get(position));
image.setLayoutParams(new Gallery.LayoutParams(100,75)); 
image.setScaleType(ImageView.ScaleType.FIT_XY);
image.setBackgroundResource(R.drawable.background); //here is drawable with selector
侦听器的一部分(当我删除此侦听器时,它会工作)

public void Listen(){
gallery.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共位置(AdapterView父视图、视图v、整型位置、长id)
{text.setText(“测试”);}
@凌驾
未选择的公共无效(AdapterView父项){}
}; } 
2.background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@drawable/blueback" />
    <item android:drawable="@drawable/redback" /> 
</selector>

您可以尝试在
ImageAdapter
getView()
方法中的各个项目上设置
onSelectedListener
,而不是在
Gallery
本身上设置它


其次,选择是否仍在发生?我的意思是,是否调用了
onItemSelected()
?这意味着问题只存在于选择器图形中。如果根本没有调用onItemSelected,则可能需要对返回的
getView()视图执行
setClickable(true)

您可以尝试在
ImageAdapter
getView()
方法中的各个项目上设置
onSelectedListener
,而不是在
库本身上设置它

其次,选择是否仍在发生?我的意思是,是否调用了
onItemSelected()
?这意味着问题只存在于选择器图形中。如果根本没有调用onItemSelected,则可能需要对返回的
getView()
视图执行
setClickable(true)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@drawable/blueback" />
    <item android:drawable="@drawable/redback" /> 
</selector>