Android: новый вопрос GUI - как объявить viewGroup, без макета XML-файла? - PullRequest
5 голосов
/ 04 декабря 2010

В приложении я борюсь с тем, что у меня есть собственное представление.Я не могу объявить его в XML-файле макета, потому что я собираюсь использовать его из действия, которое содержит мой экземпляр пользовательского представления, и мне нужно иметь к нему доступ (не могу переопределить findViewById ...).

Из этогоЯ решил объявить все элементы GUI в Activity.

Но я просто не могу сделать ни одного шага вперед, так как даже не могу создать экземпляр viewGroup ...

Это то, что япытаюсь:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ViewGroup vg = new ViewGroup(this.getApplicationContext());

    setContentView(vg);

}

и я получаю 'Cannot instantiate ViewGroup' ...

Может кто-нибудь привести простой пример того, как объявить viewGroup, которая содержит представления?

Документация по классу также не очень удобна для начинающих ... все примеры посвящены описанию макета в XML-файле макета ...?

Оцените вашу работу, приведя пример!

1 Ответ

7 голосов
/ 04 декабря 2010

[ViewGroup][1] - абстрактный класс, вы не можете создать его экземпляр. Он определяет тип классов, которые будут контейнером для размещения в них других представлений. Другими словами, макеты типа LinearLayout из RelativeLayout являются ViewGroup. Таким образом, вы можете сделать что-то подобное:

   @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  LinearLayout vg = new LinearLayout(this);
// set the LayoutParams the way you want.
// and add textviews, imageviews, ... here for instance.
  setContentView(vg);

 }

Для LayoutParams, я думаю, вы должны начать с LayoutParams.Fill_parent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...