У меня есть список, что каждый элемент в списке содержит флажок. Моя проблема в том, что я хочу установить только один флажок, выбранный за раз. Еще одна проблема, когда я установить флажок в порядке 3, а затем, когда я прокрутки вверх и назад, флажок в другом порядке, 5 или 8 случайно Не могли бы вы помочь мне решить эту проблемуНевозможно установить только один флажок, выбранный в виде списка
ответ
Установите свой ListView в:
lvSelectLocation.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
ArrayAdapter<String> adptr = new ArrayAdapter<String>(Location.this, android.R.layout.simple_list_item_single_choice, locationList);
Ручка onItemClick только:
lvSelectLocation.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
Selected = arg0.getItemAtPosition(arg2).toString();
}
});
Android автоматически перерабатывают вид ListView так, выбран вариант рецикл при прокрутке. Для этого вам нужно установить выбранный элемент списка в ArrayList.
Большое вам спасибо, приятель –
Добро пожаловать. Если ответ полезен, выберите правильный ответ. – SANAT
Как я могу справиться с этим в случае RecyclerView –
Вы можете использовать демонстрационную версию API, чтобы понять лучший способ для этой реализации. Посмотрите на this. Существует опция CHOCIE_MODE
со списком, который вы можете установить в CHOCIE_MODE_SINGLE
. Простой код такой:
public class List10 extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, GENRES));
final ListView listView = getListView();
listView.setItemsCanFocus(false);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
}
private static final String[] GENRES = new String[] {
"Action", "Adventure", "Animation", "Children", "Comedy", "Documentary", "Drama",
"Foreign", "History", "Independent", "Romance", "Sci-Fi", "Television", "Thriller"
};
}
Это связано с тем, как работает механизм рециркуляции списков. Вам нужно разместить соответствующий код адаптера. – Raghunandan
Возможно, вы хотите использовать переключатель, а не флажок. Кроме того, чтобы получить лучший ответ, разместите соответствующий код. –
возьмите boolean в объекте listview для проверки и снимите галочку и измените его значение, если отмечено true и false, если снимите флажок и вместо отметки android установите флажок, скажем, checked.png и unchecked.png используйте его в соответствии с состоянием проверки. –