Я создал пользовательский ArrayAdapter
для Spinner
. Разница в том, что он отображает изображения из ArrayList
сложного класса вместо обычного текста. Он работает до сих пор. Изображения и переключатели отображаются по желанию. Проблема заключается в том, что раскрывающееся представление не ведет себя правильно: оно не закрывается щелчком, и только переключатели могут переключаться без использования всего представления.Custom ArrayAdapter для Spinner: выпадающий вид не работает должным образом
Есть ли у кого-нибудь идеи, что не так? Должен ли я реализовать какой-то listener
в adapter
??
Вот код метода getDropDownView
:
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
LayoutInflater inflater=(LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout view=(LinearLayout)inflater.inflate(R.layout.spinnerimageitem, null);
ImageView iv=(ImageView)view.getChildAt(0);
RadioButton rb=(RadioButton)view.getChildAt(1);
int iImageID=ctx.getResources().getIdentifier(
"f_"+funcs.get(position).getBitmapSetup(),
"drawable", ctx.getPackageName());
if(loco.getFunction(iIndex).equals(funcs.get(position)))
rb.setChecked(true);
iv.setImageResource(iImageID);
return(view);
}
Fantastic !! Это так, но в чем причина? –
Поскольку реализация Spinner допускает только один объект с возможностью фокусировки в представлении. Если вы установите фокус переключателя, переключитесь на переключатель, чтобы элемент потерял фокус. .. Почему вы не можете нажать – Pragnani
Спасибо! Я только заметил, что все еще есть небольшая проблема: щелчок по изображению выбирает элемент и закрывает диалог. Но щелчок на «RadioButton» проверяет «RadioButton», но не закрывает «диалог». Любая идея для этой проблемы? Заранее спасибо! –