2016-01-23 34 views
7
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
     Log.d("test1","run"); 
    } 
}); 

ListView non è fuoco, se ho impostato in questo modo:Listview non cliccabile quando il TextView dentro quella ListView è selezionabile

<TextView 
     android:id="@+id/comment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/username" 
     android:layout_below="@+id/username" 
     android:autoLink="web" 
     android:textIsSelectable="true" 
     android:textColor="#000000" 
     android:textSize="14dp" /> 

Dopo tolgo il textIsSelectable, l'onitemclicklistener viene licenziato.

ho studiato un po ', e ho seguito qualche suggerimento su internet

esempio

messo android:descendantFocusability="blocksDescendants" alla vista primaria

Il clickListener è sparato questa volta, ma quando selezionare il testo che mostrano errore:

TextView does not support text selection. Selection cancelled. 

sia la funzione può esistere? grazie mille

+1

puoi pubblicare maggiori informazioni sul tuo codice? come, dove hai posto questo TextView? hai creato l'adattatore? –

+1

Per quanto ho capito, vuoi selezionare una parte di testo che si trova in un 'ListView'. Se sono corretto, perché non modificare il design dell'app? Lascia * onItemClickListener * e quando si fa clic su un elemento, apri un popup quando l'utente può selezionare il testo desiderato. – JJ86

risposta

1

È possibile aggiungere manualmente OnClickListener all'adattatore padre in elenco. Non dimenticare di cancellare android:descendantFocusability="blocksDescendants". L'ho appena provato

viewHolder.parent.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
1

Usa sotto il codice, rimuovere

android:textIsSelectable="true" 

Può risolvere il problema.

viewHolder.textView.setOnClickListener 
(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show(); 
      } 
     });