Как экран выбора языка, я предполагаю, что вам нужно выбирать только один элемент за раз.Вы уже добавили логический элемент isChecked;
, но, кажется, нигде не используются.
Шаг 1:
Здесь вам нужен элемент int - скажем, selectedItemPosition
, начальное значение которого установлено как -1.Другими словами, замените
boolean isChecked = false;
на
int selectedItemPosition = -1;
Шаг 2:
Добавьте это к onItemClick()
selectedItemPosition = ((selectedItemPosition!=position)?position:-1);
notifyDataSetChanged();
Шаг 3:
Добавьте это к вашему getView()
image_tick.setVisibility((selectedItemPosition=position)?View.VISIBLE:View.GONE);
Несколько советов:
- При использовании
ListViews
, следуйте шаблону держателя вида для оптимизации производительности. - Используйте
convertView
s дляrecycle views. - Вы можете заменить
image_tick.setImageResource(R.drawable.ic_checked);
на android:src="R.drawable.ic_checked"
в XML.