Ich habe einen benutzerdefinierten TextView, der anklickbar ist. Es definiert seinen eigenen onClick-Handler, um sein Aussehen basierend auf Klicks zu ändern. Wenn ich jedoch einen zweiten onClick-Handler in meiner Aktivität definiere, um basierend auf den angeklickten Button etwas zu tun, wird nur eine der onClick-Funktionen aufgerufen. onClick ist eine void-Funktion - gibt es einen Weg zu sagen, dass ich diesen Klick nicht bearbeitet habe, bitte leite ihn an andere onClick-Handler weiter?
Um genauer zu sein, hier ist der Code:
Im Inneren von MyCheckButton, das TextView erweitert, habe ich:
setOnClickListener( mClickListener );
private OnClickListener mClickListener = new OnClickListener() {
public void onClick(View v) {
toggle();
}
};
Wenn ich jedoch MyCheckButton in meine Aktivität einbinde und natürlich etwas tun muss, wenn darauf geklickt wird, hefte ich einen anderen OnClickListener daran:
MyCheckButton button= (MyCheckButtonButton) findViewById(R.id.cb);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// etwas in der App tun
}
});
Indem ich setOnClickListener zweimal aufrufe, scheint es, dass ich den ursprünglichen Listener ersetze, sodass toggle(), das das Aussehen ändert, nie aufgerufen wird. Wie kann ich etwas in meiner Aktivität tun, wenn auf diesen Button geklickt wird, wenn er bereits den onClick-Handler verwendet, um sein Aussehen zu ändern? Ich dachte, ich würde einfach beide OnClickListeners sehen, die aufgerufen werden.