Как раздуть расширенное LinearLayout из XML

Кто-нибудь может предложить способ улучшить этот пример 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)");
       }
       ...

5
задан smac89 23 August 2015 в 09:38
поделиться