У меня очень простая Галерея с изображениями, и у меня есть XML-файл с селектором для различных состояний. Он работает отлично (выбранный имеет синий фон, остальные - красный), пока я не добавлю setOnItemSelectedListener. Затем селекторы состояния перестают менять фон выбранного элемента. Просто покажите все фоны как невыбранные. Очевидно, что Listener обгоняет управление макетом, но не знает, как избежать этого.
Вот мой код:
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(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id)
{text.setText("test");}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
}; }
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>