OnClick aus XML funktioniert nicht

E

Errschaffer

Neues Mitglied
0
Hallo,

also mit Android SDK hab ich so meine problemchen. Ich will einfach nur einen Button den man anklickt und sich dann ein Text ändert. Dafür so wenig Code für möglich, damit übersichtlich.

Also hab ich in meine XML Datei unter res/layout/main.xml folgendes eingetragen.

Aber das Programm stürzt ab. :(

<Button
android:id="@+id/beenden"
android:onClick="myClickHandler"
android:text="Beenden"
/>
Und der Quellcode eben (nur das wesentliche).

beenden = new Button (this);
beenden = (Button) findViewById (R.id.beenden);

public void myClickHandler(View target)

{

tv.setText("Button geklickt");


}
Also das kann doch net so schwer sein. Kann mir jemand vieleicht ein paar Bücher empfhelen ? Android Entwicklung ist doch noch relativ rar im Netz vertreten im Vergleich zu anderen Plattformen.

:)
 
Zuletzt bearbeitet:
Android Entwicklung ist unglaublich weit gestreut im Netz. Alleine was man bei dev.android.com zu lesen kriegt sollte reichen. (Mir reichte es zumindest)
Auch gibt es Massen an Open Source Apps wo man gucken kann wie was geht.

Achja: "Stürzt ab" ist keine Fehlerbeschreibung, ausserdem ist das sinnlos:
Code:
beenden = new Button (this);
beenden = (Button) findViewById (R.id.beenden);
Entweder erstellst du einen neuen Button oder du suchst den bestehenden über findViewById.
 
Sry war vorhin etwas in Eile. Also ich bekomme wenn ich den Code mit den im ersten Post genannten Sachen ausführe einen unexpectedly Error.
Gleich am Anfang. Mach ich die Zeile weg in der der Button geladen wird , habe ich den Fehler nicht. Also muss es ja wohl irgendwo bei der XML Datei liegen oder beim laden.

Aber hier nochmal der ganze Code. Ist besser denk ich.


super.onCreate(savedInstanceState);

setContentView (R.layout.main);

LinearLayout l = new LinearLayout(this);


beenden = (Button) findViewById (R.id.beenden);


tv = new TextView(this);
tv.setText("Catch It !");

l.setOrientation(1);
l.addView(tv);
l.addView(beenden);


setContentView(l);

<Button
android:id="@+id/beenden"
android:onClick="myClickHandler"
android:text="Beenden"
/>


:)
 
Ok, also
1. Entweder lädst du dein Layout aus der xml und holst dir die Views über findViewById(), oder
2. du erstellst dir dein Layout im Code.

Aber nicht das Layout aus der XML laden, dann einen Button darüber finden, ein neues Layout erstellen und setzen. Das kann ja nicht anständig funktionieren!

Desweiteren: In der DDMS Perspektive kannst du im LogCat View den StackTrace sehen. Darin steht, was schiefgeht und vorallem wo.

</GrundlagenDerProgrammierung>
 

Ähnliche Themen

SaniMatthias
Antworten
19
Aufrufe
959
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
1.015
Robby1950
R
O
Antworten
15
Aufrufe
2.970
ORHUX
O
Zurück
Oben Unten