Programmgesteuertes Hinzufügen einer Textansicht zu einem LinearLayout in Android
In der Android-Entwicklung ist es häufig erforderlich, Ansichten dynamisch zu einem in definierten Layout hinzuzufügen eine XML-Datei. In diesem Artikel wird der Prozess des Hinzufügens einer Textansicht zu einem vordefinierten LinearLayout im Code untersucht.
Problem:
Der Benutzer hat versucht, eine Textansicht zu einem in definierten LinearLayout hinzuzufügen XML mit dem folgenden Code:
<code class="xml">View linearLayout = findViewById(R.id.info); TextView valueTV = new TextView(this); valueTV.setText("hallo hallo"); valueTV.setId(5); valueTV.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); ((LinearLayout) linearLayout).addView(valueTV);</code>
Dieser Code führte jedoch zu einer ClassCastException-Ausnahme:
java.lang.ClassCastException: android.widget.TextView
Lösung:
Der Fehler Dies ist auf eine falsche Umwandlung der linearLayout-Variablen zurückzuführen. Um auf das LinearLayout zuzugreifen, sollte es explizit als LinearLayout umgewandelt werden:
<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); ... linearLayout.addView(valueTV);</code>
Zusätzlich sollte die LayoutParams-Instanz mit LinearLayout.LayoutParams anstelle von LayoutParams erstellt werden.
Korrigierter Code :
<code class="xml">LinearLayout linearLayout = (LinearLayout)findViewById(R.id.info); TextView valueTV = new TextView(this); valueTV.setText("hallo hallo"); valueTV.setId(5); valueTV.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); linearLayout.addView(valueTV);</code>
Durch diese Änderungen wird die TextView erfolgreich zum LinearLayout hinzugefügt.
Das obige ist der detaillierte Inhalt vonWie füge ich in Android programmgesteuert eine Textansicht korrekt zu einem LinearLayout hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!