2016-08-05 59 views
0

Ich habe eine Listview mit einem benutzerdefinierten Adapter, die Artikel mit einem EditText und einem Textview auffüllt:Listview mit EditText und OnItemClickListener

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/et_choice_prob" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="numberSigned"/> 

    <TextView 
     android:id="@+id/tv_choice_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/et_choice_prob" 
     android:layout_alignBaseline="@id/et_choice_prob" 
     android:layout_marginLeft="5dip" 
     /> 


</RelativeLayout> 

Wenn ich ein OnItemClickListener einstellen möge es nie aufgerufen wird, aufgrund der EditText stehlen der Fokus.

Ein anderer Thread erwähnte, dass ich focusable zu false setzen sollte, die die Fähigkeit entfernen wird, das TextView tatsächlich zu bearbeiten.

Ich habe auch versucht, descendantFocusability der ListView zu jeder verfügbaren Option ohne Erfolg zu setzen.

Der Adapter tut nichts Besonderes, aber ich werde Quelle auf Anfrage zur Verfügung stellen. Alles andere wird in gleicher Weise auf einem anderen ListFragment ausgeführt und funktioniert.

+1

hast du versucht, onclicklistener auf jedem childs deiner Ansicht hinzuzufügen? http://StackOverflow.com/a/6090713/2667946 – JulienGenoud

+0

Yeah ... bin bereits herauszufinden, diese Art von benutzerdefinierten Lösung. Aber es nervt mich wirklich, warum dieser dumme 'OnItemClickListener' nicht ausgelöst –

Antwort

1

Versuchen Sie diesen Code in yout EditText Tag

android:focusable="true" 
android:focusableInTouchMode="true" 
+0

Nein, macht keinen Unterschied –

0

Set setOnClickListener für RelativeLayout Zugabe während Ansichten in getView Methode des Adapters Listenelement aufzublasen. Ihr EditText stimmt nicht mit dem übergeordneten überein. Dies muss funktionieren, wenn Sie auf die andere Seite der Listenzeile klicken.

+0

tatsächlich die gleiche Lösung wie im ersten Kommentar zu der Frage von @JulienGenoud –