Андроид не видит состояние нажатия

Я сделал линейный макет, на котором я добавляю представления, имитируя таблицу, потому что я прочитал, что список в прокрутке не является вариантом. Поэтому у меня есть линейный макет с wrap_content внутри scrollview.

Проблема в том, что для просмотров, которые я добавляю, я не могу вызвать какое-либо состояние нажатия, чтобы изменить графику, как раньше, когда она была в списке, она отлично работала.

У меня есть следующее:

if (arrayWorksWith.size()!=0) { this.listAdapter = new WorksWithListAdapter(this, R.layout.works_with_cell, R.id.lblItemTitle, arrayWorksWith); for (int i=0; i<arrayWorksWith.size(); i++) { View v = this.listAdapter.getView(i, null, layoutTblWorksWith); v.setTag(new Integer(1000 + arrayWorksWith.get(i).getId())); v.setOnClickListener(this); layoutTblWorksWith.addView(v); } } 

Проблема в том, что событие click активируется, но у меня нет визуальной обратной связи. Внутри этого представления у меня есть Imageview с фоном, установленным на следующий drawable:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/r1" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/r1" /> <!-- focused --> <item android:drawable="@drawable/transparent_background" /> <!-- default --> </selector> 

Кроме того, я только что попробовал прослушиватель прикосновений в представлении, которое я добавляю, но это не удается 🙁

  v.setOnTouchListener(new OnTouchListener() { public boolean onTouch (View v, MotionEvent event) { TextView lblCategoryTitle = (TextView)v.findViewById(R.id.lblItemTitle); if(event.getAction() == MotionEvent.ACTION_DOWN) { lblCategoryTitle.setTextColor(R.color.white); } else if (event.getAction() == MotionEvent.ACTION_UP) { lblCategoryTitle.setTextColor(R.color.textLabel_blue); } return false; } }); 

Поэтому, когда этот код находился внутри ListView, когда я нажал на ячейку, изображение меняло фон, давая визуальную обратную связь, но когда я создаю его сейчас и добавляю его в LinearLayout, он перестает работать.

Есть идеи? Я пробовал играть с фокусируемым, кликабельным, дублированным родительским состоянием, но без везения.

Вы должны установить listView на OnItemClickListener, а не на OnClickListener.