2010-07-29 112 views
1

我有一个android问题: 我已经成功创建了一个倒计时厨房计时器活动,但是我的目标是有一个活动,它有3个计时器,它们都是独立工作的。我为计时器本身创建了一个单独的布局,并将计时器代码移入类中,并使用layoutinflater创建视图,然后将它们添加到活动的线性布局中。我得到的布局很好,但没有功能。似乎没有任何将班级代码与活动联系起来的东西。Android - 如何膨胀复杂的布局并添加到其他布局?

我该如何解决这个问题?任何人都可以指向我的一些工作示例代码?

在此先感谢!

回答

1

假设您已经从XML布局夸大了视图,您可以拨打findViewById(Int), 膨胀视图来获取该布局中的任何视图。然后,你可以手动进行连线,例如在某个按钮上添加一个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 2010-07-30 10:53:05

+0

嗯,这只是一个猜测,但你有没有尝试在init方法中构造函数调用之后进行布线?不知道它是否会有所帮助,但它是值得一试。即ClassThatWillInflateTheLayout toInitalize = new ClassThatWillInflateTheLayout(); toInitialize.init() – 2010-07-30 12:26:46

0

这只是一个不知情的情况。我最终做的是在我的课堂中扩展相关布局,并修复我的构造函数,以便在活动的上下文中使课堂中的视图膨胀。然后视图被添加到活动中正确的布局中。

感谢所有的好建议