У меня есть расширенный BaseAdapter, у которого есть дочерние элементы LinearLayout (ImageView и TextView в каждом), подключенные к пользовательской галерее.
Когда я впервые запускаю свою активность, я хочу вызвать setSelection(position)
, чтобы заставить ImageView сменить селектор на «выбранное» изображение.Это работает, как только я запускаю Галерею, на последующих выбранных дочерних элементах, но не в первый раз при запуске приложения.
Мой селектор:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@drawable/home_image_select" />
<item android:state_selected="false"
android:drawable="@drawable/home_image" />
</selector>
Моим первым предположением было вызвать notifyDataSetChanged () на адаптере после вызова setSelection (), который я попытался сделать так:
((CustomAdapter) gallery.getAdapter()).notifyDataSetChanged();
Это ничего не сделало.Я также попытался переопределить setSelection () класса Gallery, чтобы сделать это:
View v = this.getAdapter().getView(position, null, this);
((ImageView) v.findViewById(R.id.gallery_image)).setSelected(true);
Это тоже не работает.Что-то я пропустил или мог попробовать?