2010-07-29 6 views
1

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

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

благодарит заранее!

ответ

1

Предполагая, что вы раздули представление из XML-макета, вы можете позвонить findViewById(Int) на надутый вид, чтобы получить представление любого вида в этом макете. Тогда вы могли бы сделать wireing вручную, например, добавление слушателя 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, но я не понимаю, зачем ему это нужно. – GdD

+0

Хм, это всего лишь догадка, но попытались ли вы провести проводку после вызова конструктора методом init? Не уверен, поможет ли это, но стоит попробовать. То есть ClassThatWillInflateTheLayout toInitalize = new ClassThatWillInflateTheLayout(); toInitialize.init() –

0

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

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

Смежные вопросы