Kann jemand vorschlagen, dieses API8-Beispiel zu verbessern? Während sie sagen, die Ansichten könnten in XML definiert worden sein, was sie tatsächlich getan haben, ist sie in Java zu codieren. Ich verstehe, warum sie wollten. Sie haben einige Member zu einem erweiterten LinearLayout hinzugefügt, und die Werte werden zur Laufzeit bestimmt.Wie erweiterte LinearLayout aus XML aufblähen
Laut ach, jeder im Universum sollten die Layout-Richtlinien in XML verschieben. Für diese App ist es jedoch sinnvoll, den Text so zu belassen, wie er in der Laufzeitlogik ist. Wir haben also einen hybriden Ansatz. Füllen Sie die Ansichten auf und füllen Sie den dynamischen Text. Ich habe Probleme herauszufinden, wie ich es erreichen kann. Hier ist die Quelle und was ich versucht habe.
private class SpeechView extends LinearLayout {
public SpeechView(Context context, String title, String words) {
super(context);
this.setOrientation(VERTICAL);
// Here we build the child views in code. They could also have
// been specified in an XML file.
mTitle = new TextView(context);
mTitle.setText(title);
...
ich seit dem Linearlayout gedacht hat einen Androiden: id = "@ + id/LinearLayout01", sollte ich in der Lage sein, dies zu tun in der OnCreate
SpeechView sv = (SpeechView) findViewById(R.id.LinearLayout01);
aber es trifft nie den minimalen Konstruktor, den ich hinzufügte:
public class SpeechView extends LinearLayout {
public SpeechView(Context context) {
super(context);
System.out.println("Instantiated SpeechView(Context context)");
}
...
Es funktioniert auch für mich. Vielen Dank! – Lion