onClick Listener wird nicht gefunden

  • Antworten:5
  • Bentwortet
Dietrich Gebert
  • Forum-Beiträge: 245

07.10.2013, 08:32:08 via App

Hallo,

ich habe das Problem dass, ein zugewiesener onclick Listener nicht gefunden wird.

Die Situation ist volgende.
Ich habe eine neue XML Layout Datei erstellt, und in dieser einem relativen Layout einen onClick Listener definiert, sowie clickable = "true" gesetzt.

Diese XML Datei wird dann in der Applikation als ein Dialog angezeigt.

Wenn ich nun auf die View klicke stürzt meine App ab und im Logcat kommt Irgendwas mit Listener konnte nicht gefunden werden und die Activity ist nicht meine Main Activity in der ich die aufzurufende Methode definiert habe.

Auch habe ich versucht den onClick Listener während der Laufzeit zu generieren.
Durch einen LayoutInflater hole ich mir den entsprechenden Content der XML Datei suche mein Relatives Layout (wird auch gefunden) und definiere einen onClick Listener.

So stürzt die App zwar nicht mehr ab, aber der onClick Listener wird beim drücken trotzdem nicht getriggert.

Ich weiß ehrlich gesagt nicht mehr weiter, habe ich etwas vergessen oder nicht beachtet?

Grüße
Dima

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

07.10.2013, 13:09:54 via Website

So schön der XML onClick auch ist, ich würde das lassen. Schreib das einfach in den Code, zum einen überlebt das dann auch eine Proguard "behandlung" besser, zum anderen erhöht es deutlich das verständniss des Codes. Ich würde in XML nicht Logik und Layout vermischen sondern nur Layout dort definieren.

— geändert am 07.10.2013, 13:10:24

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

07.10.2013, 15:18:54 via Website

Hi,
danke für deine Antwort.
Aber wie oben beschrieben habe ich das ganze auch schon im Quellcode versucht
und trotzdem funktioniert es nicht.

Grüße
Dima

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

07.10.2013, 15:48:02 via Website

impjor
Poste doch einfach das komplette LogCat, dann kann man dir besser helfen.

LG

Hi,

sorry ich habe deinen Post total übersehen.

Wenn ich heute Abend zu Hause bin werde ich das komplette LogCat posten.

Grüße
Dima

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

07.10.2013, 23:13:58 via Website

Hallo Leute,

hab mein Problem nun gelöst.

Wie ich mir gedacht habe, befand ich mich im Falschen Kontext.
Ich muss die Listener dan setzen, wenn ich den Dialog erzeuge und dem Dialog das XML zuweise

In dem Fall:
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.settings_dialog);

RelativeLayout backgroundColor = (RelativeLayout)dialog.findViewById(R.id.settingsEditBackgroundColor);
backgroundColor.setOnClickListener........

Trotzdem danke für eure Hilfe.

Grüße
Dima

Antworten