Эффект ListView и onitemClicked в Android?

Я сделал BaseAdapter, который не показывает эффект onclick в строках при выборе элементов (оранжевый фон).

Мне интересно, что нужно, чтобы появился эффект OnClickedItem. Я попытался установить OnItemClickListener в списке, но это не помогло.

вот мой код:

    private class MyAdapter extends BaseAdapter{

      private Bingo activity;


  public MyAdapter(Bingo context){
   this.activity = context;
   items = new ArrayList<String>();

  }

  public void add(String item){
   items.add(item);
   notifyDataSetChanged();
  }

  public void clear(){
   items.clear();
   notifyDataSetChanged();
  }

  private ArrayList<String> items;


  public int getCount() {
   return items.size();
  }

  public Object getItem(int position) {
   return items.get(position);
  }

  public long getItemId(int position) {
   return position;
  }

  public boolean isEnabled(int position){
   return true;
  }

  public View getView(int position, View convertView, ViewGroup parent) {

   if(position == getCount() - 5 && getCount() < 100){
    Log.d("dbg","Autoadding...");
    activity.add();
   }

   View view = null;
            if (convertView == null) {
             Log.i("dbg","new:"+position);
             view = View.inflate(activity, R.layout.item, null);
            }
            else {
             Log.i("dbg","recycle:"+position);
             view = convertView;
            }
            TextView text = (TextView)view.findViewById(R.id.text);
            text.setText(items.get(position)+" -------> pos:"+position);

   return view;
  }

 }

item.xml, который раздут...

LinearLayout
android:id="@+id/root" 
android:orientation="horizontal"
android:layout_width="wrap_content" 
android:layout_height="wrap_content"

 ImageView 
 android:id="@+id/image" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:scaleType="fitXY" 
 android:layout_marginRight="10dp" 
 android:src="@drawable/icon"


 LinearLayout
 android:orientation="horizontal" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content" 
 android:gravity="right"

  TextView 
  android:id="@+id/text" 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" 
  android:textColor="#FFF"
  android:singleLine="true" 

  Button 
  android:id="@+id/button" 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" 
  android:text="OK"
  android:layout_gravity="right" 
  android:gravity="center_horizontal"
  android:inputType="textUri"

 /LinearLayout
/LinearLayout

person Vidar Vestnes    schedule 07.10.2009    source источник


Ответы (2)


Попробуйте это
Для ListView,

final ListView list = (ListView) findViewById(R.id.list);
list.setItemsCanFocus(false);

Кроме того, убедитесь, что для кнопки внутри элемента списка установлено значение focusable false

android:focusable="false"
android:focusableInTouchMode="false"

Похожий вопрос

person bhatt4982    schedule 08.10.2009

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

person Vidar Vestnes    schedule 07.10.2009
comment
Правильно - элемент списка может иметь свои составляющие, которые могут быть выбраны, или сам может быть выбран, но не то и другое одновременно. - person Eric Mill; 08.10.2009