¿Alguien puede sugerir una forma de mejorar este ejemplo de API8? Si bien dicen que las vistas podrían haberse definido en XML, lo que de hecho han hecho es codificarlas en Java. Veo por qué querían. Han agregado algunos miembros a LinearLayout ampliado, y los valores se determinan en tiempo de ejecución.Cómo inflar Extended LinearLayout desde XML
De acuerdo con oh, todos en el universo, las directivas de diseño deberían pasar a XML. Pero para esta aplicación, tiene sentido seguir configurando el texto tal como está en la lógica de tiempo de ejecución. Entonces tenemos un enfoque híbrido. Infle las vistas, luego rellene el texto dinámico. Tengo problemas para descubrir cómo lograrlo. Aquí está la fuente y lo que probé.
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);
...
Pensé que ya la LinearLayout tiene un androide: id = "@ +/Identificación del LinearLayout01", que debería ser capaz de hacer esto en el OnCreate
SpeechView sv = (SpeechView) findViewById(R.id.LinearLayout01);
pero nunca golpea el constructor mínimo que agregué:
public class SpeechView extends LinearLayout {
public SpeechView(Context context) {
super(context);
System.out.println("Instantiated SpeechView(Context context)");
}
...
Funciona para mí, tampoco. ¡Gracias! – Lion