2009-10-07 8 views
0

J'ai créé un BaseAdapter qui n'affiche pas l'effet onclick sur les lignes lorsque les éléments sont sélectionnés (arrière-plan orange).ListView et l'effet onitemClicked dans Android?

Je me demande ce qui est nécessaire pour que l'effet OnClickedItem apparaisse. J'ai essayé de placer le OnItemClickListener sur la liste, mais cela n'a pas aidé.

voici mon code:

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 qui est gonflé ...

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 

Répondre

2

Essayez ceci
Pour ListView,

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

Aussi, assurez-vous que pour le bouton à l'intérieur élément de la liste définie focusable false

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

Similar Question

+0

Oui, ça marche aussi! –

1

Ohh, je pense que je l'ai trouvé le problème ... son sur le bouton ... si je supprime le bouton de la vue gonflée la ligne peut être sélectionnée .... si le bouton est là je ne peux que cliquer/se concentrer sur le bouton ...

+0

C'est vrai - un élément de liste peut avoir ses constituants soient sélectionnables, ou peut être lui-même sélectionnable , mais pas les deux. – Konklone

Questions connexes