У меня есть ListView, когда я проверяю строку, щелчок «isSelected()» всегда возвращает false, даже если он был ранее выбран, второй раз, когда я его проверяю, возвращает true. ListView нужно дважды щелкнуть, чтобы «isSelected()» работал ... Я видел похожие проблемы в SO, но ни одно из предлагаемых решений не работает.Android: isSelected не работает в первый раз в ListView
Примечание: Я использую пользовательский ListAdapter, что там, где я слушаю для строки клик, так что я не могу использовать setOnItemClickListener на Listview
row.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
v.clearFocus();
if (v.isSelected())
{
Как предложил я добавил setOnItemClickListener к Listview, но теперь d oesn't обнаружить, если выбран, он всегда возвращает ложь
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
Log.v("myApp", "onItemClick is " + position);
if (v.isSelected())
{
v.setSelected(false);
Log.v("MyApp", "fiend deselect row " + position);
v.setBackgroundResource(R.color.default_color);
} else {
Log.v("MyApp", "fiend click row " + position);
v.setSelected(true);
v.setBackgroundResource(R.color.pressed_color);
}
}
});
Добавить слушателя в ListView не к ряду – XxGoliathusxX
сделал это, но теперь это ИТС всегда возвращал false для «IsSelected()» – cal