Android - как накачать сложный макет и добавить в другой макет?

1

У меня вопрос по андроиде: Я успешно создал счетчик рабочего времени таймера, но моя цель состоит в том, чтобы иметь активность, на которой есть три таймера, которые работают независимо. Я создал отдельный макет только для самого таймера и переместил код таймера в класс, и я использовал layoutinflater для создания представлений, а затем добавил их в линейный макет для этой операции. Я получаю макеты отлично, однако нет никакой функциональности. Кажется, нет ничего, что связывает код класса с активностью.

Как мне подойти к этому? Может ли кто-нибудь указать мне на какой-то код рабочего примера?

заблаговременно!

Теги:
layout
inflate

2 ответа

1

Предполагая, что вы раздули представление из XML-макета, вы можете вызвать findViewById(Int) on надутое представление, чтобы получить представление любого вида в этом макете. Затем вы можете выполнить проводку вручную, например, добавить к нему кнопку onClick:

inflatedView.findViewById(ID_OF_SOME_BUTTON_IN_THE_INFLATED_VIEW).setOnClickListener(
   new View.OnClickListener() {
       public void onClick(View v) {
           // DO SOMETHING WHEN BUTTON IS CLICKED
       }
   });
  • 0
    Я сделал это, но получаю исключение каждый раз, когда пытаюсь нажать на кнопку. По сути, все, что я делал, - это перемещал код таймера из основного занятия в отдельный класс. Вся проводка выполняется в конструкторе этого класса. Действие просто делает новый TimerBox (LinearLayout). Класс, который я создал, не расширяет LinearLayout, но я не понимаю, зачем это нужно.
  • 0
    Хм, это только предположение, но вы пытались выполнить разводку после вызова конструктора в методе init? Не уверен, что это поможет, но стоит попробовать. Т.е. ClassThatWillInflateTheLayout toInitalize = new ClassThatWillInflateTheLayout (); toInitialize.init ()
0

Это был просто случай, когда он не знал достаточно. В конце концов я решил расширить relativelayout в своем классе и исправить мои конструкторы, чтобы раздуть представление в классе с контекстом активности. Затем представление было добавлено в правильный макет в действии.

Спасибо за все хорошие предложения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню