OnClickListener wurde nicht für die benutzerdefinierte Ansicht ausgelöst

8

Ich habe eine benutzerdefinierte Schaltfläche erstellt, die von einem XML-Layout aufgeblasen wird. Alles funktioniert gut, außer dass der Klick-Listener nicht ausgelöst wird.
Ich vermute, das Problem liegt am android:clickable="true" -Attribut, da, wenn ich es entferne, der Klick-Listener ausgelöst wird. Aber ich muss dieses Attribut gesetzt haben, da meine benutzerdefinierte Ansicht einen Selektor als Hintergrund verwendet. Wenn ich ihn entferne, funktioniert der Selektor nicht mehr.

Hier ist die Klassendefinition:

%Vor%

Das XML-Layout, von dem die benutzerdefinierte Ansicht aufgeblasen wird:

%Vor%

Und so verwende ich es in den XML-Layouts:

%Vor%

und wie die Aktivität den Klick-Listener festlegt:

%Vor%

Ich habe mehrere Threads gesehen, die dieses Problem bereits ansprechen, aber keiner von ihnen hat mir geholfen. Würde mich über jede Hilfe freuen.

    
Andy Res 28.05.2013, 12:35
quelle

1 Antwort

11

Ich war besorgt, dass das Setzen von android:clickable="true" nicht den Selektorhintergrund auslösen würde, aber nachdem ich mir die setOnClickListener() -Methode aus der View -Klasse angeschaut hatte, sah ich, dass setClickable(true) aufgerufen wurde:

%Vor%

Das Entfernen von android:clickable="true" aus der Layout-Deklaration und das Festlegen nur des Klick-Listeners für meine benutzerdefinierte Schaltfläche haben das Problem behoben.

    
Andy Res 26.03.2014, 09:06
quelle

Tags und Links