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