Чтобы улучшить удобство использования для слепых пользователей, мне нужен ListActivity с помощью метода OnItemSelected для добавления таких вещей, как вибрация или звуки, когда выбран конкретный список. Поэтому я расширил класс ListActivity и добавлены следующие методы:ListActivity с выбираемыми позициями
protected void onListItemSelected(ListView parent, View v, int position, long id) {
}
private AdapterView.OnItemSelectedListener mOnSelectedListener = new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
onListItemSelected((ListView)parent, v, position, id);
}
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
};
Теперь, когда я создаю экземпляр моего нового класса SelectableListActivity и переопределить onListItemSelected метод, до сих пор ничего не происходит. Есть идеи? Спасибо заранее!
Очень часто проблема с новыми разработчиками Android заключается в том, чтобы полагаться на ListView.getSelectedItemPosition(). В сенсорном режиме этот метод вернет INVALID_POSITION. Вместо этого вы должны использовать прослушиватели кликов (см. SetOnItemClickListener (android.widget.AdapterView.OnItemClickListener)) или режим выбора (см. SetChoiceMode (int)). http://developer.android.com/resources/articles/touch-mode.html – jsaye
ну в этом конкретном случае мне нужен прослушиватель для выбора, так как представление управляется физическими клавишами, и мне нужно дать некоторую форму обратной связи до того, как элемент будет выбран с помощью щелчка. –
Каково содержание ваших элементов списка? Некоторые элементы управления, например флажки, будут перехватывать onClick. – jsmith