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

ListView nie jest ogień, jeśli ustawić tak:Listview nie klikalny gdy TextView wewnątrz tego ListView jest wybierana

<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" /> 

Po usunąć textIsSelectable The onitemclicklistener jest zwolniony.

I badali czasu, i następnie kilka propozycji w Internecie

np

umieścić android:descendantFocusability="blocksDescendants" do macierzystej widzenia

clicklistener wypala się ten czas, ale kiedy zaznaczyć tekst wyświetli błąd:

TextView does not support text selection. Selection cancelled. 

może zarówno funkcja istnieje? bardzo dziękuję

+1

Czy możesz zamieścić więcej informacji na temat swojego kodu? jak, gdzie umieściłeś ten TextView? czy utworzyłeś adapter? –

+1

O ile rozumiem, chcesz wybrać część tekstu znajdującą się w 'ListView'. Jeśli mam rację, czemu nie zmienić projektu aplikacji? Pozostaw * onItemClickListener * i po kliknięciu elementu otwórz okno podręczne, gdy użytkownik może wybrać żądany tekst. – JJ86

Odpowiedz

1

Możesz ręcznie dodać OnClickListener do rodzica w adapterze list. Nie zapomnij usunąć android:descendantFocusability="blocksDescendants". Po prostu to wypróbowałem.

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

skorzystać z poniższego kodu, usuń

android:textIsSelectable="true" 

może rozwiązać Twój problem.

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

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