2010-07-29 116 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

這只是一個不知情的情況。我最終做的是在我的課堂中擴展相關佈局,並修復我的構造函數,以便在活動的上下文中使課堂中的視圖膨脹。然後視圖被添加到活動中正確的佈局中。

感謝所有的好建議