Android ListView Выберите анимацию

Как настроить анимацию, когда пользователь выбирает элемент в списке?

Я делаю свой собственный адаптер listview для установки четных строк с розовым фоном и нечетными строками с фиолетовым фоном. Единственная проблема заключается в том, что я не уверен, как настроить анимацию для щелчка пользователем («касания») элемента.

Я думал о внедрении OnTouchListener и изменении фона на зеленый, когда он выбран. НО у меня есть кнопки внутри строк, которые больше не могут работать из-за реализации OnTouchListener. Это правда?

Код:

public class MyAdapter extends BaseAdapter { public View getView(int position, View convertView, ViewGroup parent) { // position is the element's id to use // convertView is either null -> create a new view for this element! // or not null -> re-use this given view for element! // parent is the listview all the elements are in if (convertView == null) { convertView = mInflater.inflate(R.layout.your_layout, null); // here you must do whatever is needed to populate the elements of your // list element layout ... } else { // re-use the given convert view // here you must set all the elements to the required values } // your drawable here for this element convertView.setBackground(...); // maybe here's more to do with the view return convertView; } } 

    Используйте StateListDrawable с определенным элементом для state_selected.

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/selected" /> ...Other States... <item android:drawable="@drawable/normal" /> </selector> 

    Таким образом, когда выбран элемент списка, он будет автоматически использовать этот «выбранный» графический файл.