Может кто-нибудь предложить способ улучшить этот пример API8? Хотя они говорят, что представления могли быть определены в XML, на самом деле они кодировали их в Java. Я понимаю, почему они хотели. Они добавили некоторые члены в расширенный LinearLayout, и значения определяются во время выполнения.
Согласно ой, все во вселенной, директивы макета должны перейти на XML. Но для этого приложения имеет смысл сохранять текст как есть в логике времени выполнения. Таким образом, у нас есть гибридный подход. Раздуйте представления, затем заполните динамический текст. У меня проблемы с выяснением, как это сделать. Вот источник и то, что я попробовал.
из API8 Примеры, List4.java
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);
...
Я подумал, так как у LinearLayout есть android: id = "@ + id / LinearLayout01", я должен быть в состоянии сделать это в OnCreate
SpeechView sv = (SpeechView) findViewById(R.id.LinearLayout01);
но он никогда не попадет в минимальный конструктор, который я добавил:
public class SpeechView extends LinearLayout {
public SpeechView(Context context) {
super(context);
System.out.println("Instantiated SpeechView(Context context)");
}
...