android setContentView nicht funktioniert
Nicht eine doppelte: meine Frage ist einfacher als alle anderen.
Ich habe versucht zu Folgen, die android Hallo Welt tutorial, und ich kann nicht das erste Beispiel funktioniert.
Dies ist mein code:
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
Wie Sie sehen können, habe ich kopiert und eingefügt, der direkt aus dem tutorial.
Das problem ist, dass anstelle der Anzeige Hallo, Android, es zeigt, was in der layout/main.xml Datei. Wenn diese Datei nicht vorhanden ist, schließt er sich, ohne dass etwas angezeigt wird.
WARUM DIES NICHT FUNKTIONIERT?
Habe ich kopiert diese direkt von der offiziellen docs, ich habe keine Ahnung, wo Sie beginnen sogar versucht zu Debuggen. Irgendwelche Hinweise oder Vorschläge, die Sie geben können, wird sehr geschätzt werden!
Edit: mein posting main.xml wie gewünscht
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, HelloAndroid"
/>
</LinearLayout>
Beachten Sie, dass diese automatisch erstellt wurde als ich begann, das Projekt, ich hatte es nicht gibt.
- Wenn Sie erstellt haben, die Datei, bedeutet, dass Sie nicht nach dem tutorial in einer linear-oder wieder zu einem vorherigen Schritt. Reinigen Sie und neu erstellen Sie das Projekt.
- Auch, können Sie Ihre main.xml wie auch?
- Ich wusste nicht schaffen, die Datei automatisch erstellt wurde, wenn ich ein neues Projekt gestartet.
- Haben Sie versucht, einen breakpoint zu setzen in der onCreate-Methode, um zu sehen, ob es wirklich genannt? Von was ich sehen kann sollte es funktionieren. Vielleicht ist Ihr Projekt nicht ordnungsgemäß hochgeladen wird, um den emulator.
- Ich habe nur versucht, dein Beispiel mit deinem code und es scheint, um den text korrekt angezeigt (dynamisch, nicht aus main.xml). Ich würde empfehlen, Sie gehen durch die Schritte erneut aus, und stellen Sie sicher, dass Sie nichts vermissen.
- Update: das bringt auch nichts: addContentView(tv, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
- wie setze ich einen Haltepunkt?
- Ich denke, du bist mit Eclipse. In diesem Fall sollten Sie eine vertikale Linie, bevor der code. Im moment wird es wahrscheinlich nur zeigen, ein grünes Dreieck in front-of Ihre Methode Kopf (aufgrund Ihrer "Override" - Attribut). Doppelklicken Sie auf die vertikale Linie, wo Sie wollen, um einen Haltepunkt zu setzen oder mit der rechten Maustaste und wählen Sie "Toggle breakpoint". Bitte klicken Sie auf "Debug" Als Android-Anwendung" statt "Ausführen Als".
- Btw.: wenn du mit der rechten Maustaste auf die vertikale Linie können Sie auch aktivieren Sie "Show Line Numbers". Ich finde es sehr hilfreich und es ist das erste, was ich Tue, wenn ich installieren Eclipse 🙂
- danke, aber ich benutze nicht eclipse. Ich versuche, herauszufinden, wie die Verbindung von gdb auf dem emulator jetzt um zu Debuggen, ich lasse Sie wissen, wenn ich kann , aber dies ist immer ein wenig von der ursprünglichen Frage - weiß jemand wie man das tutorial Arbeit?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie haben nicht die xml-Datei oder das layout Ihrer Anwendung an. Sie sind, direkt aufrufen, die Ansicht.Müssen Sie rufen Sie Ihre anzeigen unter layout.
Syntax: setContentView(R. layout.Ihre xml-Datei, name);
Warum haben Sie zwei TextViews mit dem gleichen text? Sie sollten dies nicht tun, wenn Sie nur gehen, einen zu verwenden, dann verwenden Sie nur ein.
XML ist in Ordnung ist, aber Ihre Aktivität code ändern muss:
Hier eine Erklärung von dem was Sie tun...
Sie Bauten eine TextView dynamisch und Einstellung der ContentView auf das TextView ist in Ordnung, aber es war nicht Ihre ursprüngliche Absicht. Ihre ursprüngliche Absicht oder die der ursprünglichen Absicht der Probe wurde die Verwendung der layout-Datei und legen Sie dann den contentview der Aktivität, um das layout-Datei, nicht nur, dass textview.
Update
Anstelle von dem, was der OP sagte, er will bauen, einen TextView-Instanz dynamisch und wenden Sie es auf den Bildschirm. Wenn dies der Fall ist, dann müssen Sie...:
Der einzige Unterschied hier ist, dass der TextView-Eigenschaften, die definieren, wie es auf dem Bildschirm erscheint. Sie können entweder Benutzer FILL_PARENT oder WRAP_CONTENT.
Versuchen Sie dies: Sie brauchen nicht zu tun setContentView am Ende. Wenn Sie das tun, wird es überschreiben Sie mit, was Sie in xml.
Hinsichtlich der Frage, logcat, finden Sie es in der Debug-Perspektive in Eclipse. Es ist das Protokoll der Fehlermeldungen aus system-und Benutzer-code.