So fügen Sie eine TextView zu LinearLayout in Android hinzu
Lesezeit: 5 Minuten
Martin
Ich versuche hinzuzufügen TextViews zu meinem XML-definierten Layout im Code. Ich habe ein XML-Blatt, wo viele Views sind festgelegt. Aber ich muss einige Views im Code hinzufügen, also a create a LinearLayout im xml-sheet:
Für welche Zeile gilt diese Ausnahme? Es muss aus der LinearLayout-Umwandlung stammen. Sind Sie sicher, dass die LinearLayout-Variable ein LinearLayout und keine TextView ist? Außerdem sollten Sie die ID nicht angeben, da Sie nicht garantieren können, dass sie eindeutig ist.
– Robby Pond
8. Juli 10 um 15:06 Uhr
Sie haben Recht, linearLayout ist ein TextView, aber warum? Ich habe es in der XML-Datei als LinearLayout definiert …
– Martin
8. Juli 10 um 15:14 Uhr
Stellen Sie sicher, dass Sie wirklich mit der oben gezeigten XML-Datei arbeiten. Ist setContentView(R.layout.your_xml_layout); wirklich das richtige xml laden? Haben Sie andere XML-Layouts, in denen Sie verwenden android:id="@+id/info" was ist zufällig ein TextView?
– Rodja
1. Dezember 11 um 10:47 Uhr
Ist dieses Problem gelöst? Bitte als Antwort annehmen oder posten.
Stellen Sie außerdem sicher, dass die von Ihnen erstellten Layoutparameter LinearLayout.LayoutParams sind …
Es gibt wieder eine Ausnahme, weil findViewById eine TextView zurückgibt. Aber wieso? Ich hole es mit der LinearLayout-ID … was meinst du mit: Stellen Sie außerdem sicher, dass die von Ihnen erstellten Layout-Parameter LinearLayout.LayoutParams sind …
– Martin
8. Juli 10 um 15:59 Uhr
Warum sollte das etwas ändern? Alles, was es tut, ist eher früher als später zu wirken, was den gleichen Effekt haben sollte.
– Yesennes
19. Mai ’16 um 13:06 Uhr
Pushpendra Kuntal
Hey, ich habe deinen Code überprüft, es gibt keinen schwerwiegenden Fehler in deinem Code. Dies ist der vollständige Code:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
public class Stackoverflow extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View linearLayout = findViewById(R.id.info);
//LinearLayout layout = (LinearLayout) findViewById(R.id.info);
TextView valueTV = new TextView(this);
valueTV.setText("hallo hallo");
valueTV.setId(5);
valueTV.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
((LinearLayout) linearLayout).addView(valueTV);
}
}
Kopieren Sie diesen Code und führen Sie ihn aus. es ist völlig fehlerfrei. Pass auf…
Was wäre, wenn ich die folgende TextView haben wollte: <TextView android:id="@+id/tvDInfo3" android:layout_width="0dp" android:layout_height="wrap_content" android:textStyle="bold" android:text="Release Date" android:gravity="center" android:padding="@dimen/dyk_text_pad" android:textColor="#000000" android:textSize="@dimen/info_text_size" android:layout_weight="1" />
– Si8
18. Oktober 13 um 17:41 Uhr
+1. Diese Antwort ist viel besser als die von @Ben, da sie ein Beispiel für LayoutParams enthält und wie die restlichen Eigenschaften der TextView wird initialisiert. Dies sollte als Antwort markiert werden.
Sie müssen auf das Layout über seine Layout-Ressource zugreifen, nicht über eine ID-Ressource, die nicht garantiert eindeutig ist. Die Ressourcenreferenz sollte wie folgt aussehen: R.layout.my_cool_layout, wobei Ihr obiges XML-Layout in res/layout/my_cool_layout.xml gespeichert ist.
.
7588300cookie-checkSo fügen Sie eine TextView zu LinearLayout in Android hinzuyes
Für welche Zeile gilt diese Ausnahme? Es muss aus der LinearLayout-Umwandlung stammen. Sind Sie sicher, dass die LinearLayout-Variable ein LinearLayout und keine TextView ist? Außerdem sollten Sie die ID nicht angeben, da Sie nicht garantieren können, dass sie eindeutig ist.
– Robby Pond
8. Juli 10 um 15:06 Uhr
Sie haben Recht, linearLayout ist ein TextView, aber warum? Ich habe es in der XML-Datei als LinearLayout definiert …
– Martin
8. Juli 10 um 15:14 Uhr
Stellen Sie sicher, dass Sie wirklich mit der oben gezeigten XML-Datei arbeiten. Ist
setContentView(R.layout.your_xml_layout);
wirklich das richtige xml laden? Haben Sie andere XML-Layouts, in denen Sie verwendenandroid:id="@+id/info"
was ist zufällig ein TextView?– Rodja
1. Dezember 11 um 10:47 Uhr
Ist dieses Problem gelöst? Bitte als Antwort annehmen oder posten.
– Talha
13. Oktober 16 um 6:46 Uhr