2012-03-17 53 views
0

我的線性佈局有兩種觀點:如何使用按鈕來控制另一個查看

  1. 客戶視圖,顯示動態的東西
  2. 一鍵

我想使用按鈕使自定義視圖無效,以便可以通過Android重新繪製。我在所有視圖所在的Activity中實現了onClickListener()。但OnClickListener()似乎沒有訪問監聽器綁定的視圖以外的其他查看器。如何在按鈕OnClickListener()的不同視圖上調用invalidate()?

回答

1

您可以通過Activity.findViewById(id)檢索其他視圖。如果您已經在XML佈局中聲明瞭自定義視圖並且已將其指定爲android:id,則必須將返回的對象轉換爲所需的類型。否則,如果你手動實例化你的視圖(即通過調用它的構造函數),只需以實例變量的形式保持對象的引用

+0

我手動聲明按鈕。現在它在Activity的onCreate()中被實例化。這是否意味着我必須在Activity中使用全局實例變量,以便onClickListener()可以訪問它? – kvzrock 2012-03-17 18:18:41

+0

你明白了,但術語是錯誤的:)在OO世界裏沒有任何東西像'全局變量',所有東西都屬於一個對象。在這種情況下,你的'Activity'對象需要保持對'View'對象的引用 – Raffaele 2012-03-17 18:37:53

0

您可以將您需要的視圖設置爲活動的屬性,並且您將能夠從偵聽器方法訪問它們。乾杯!