2014-01-19 28 views
0

我有一個Fragment,它包含一個progress bar(當前可見性消失),一個button和一個空的LinearLayout容器。像:如何在異步任務後從CustomView中訪問UI元素

<LinearLayout id="@+id/ll"> </LinearLayout> 

功能是這樣的,按鈕單擊一個async task得到執行。 在postExecute()上,自定義視圖在空佈局容器ll中膨脹。這個自定義視圖是在一個單獨的類中定義的。像:

class CustomLayout extends LinearLayout{ 
    Button b1; 
} 

在這種佈局中有一個按鈕,啓動另一個async task (say, AS2)。 現在,在AS2的postExecute()上,我想讓進度條VISIBLE的可見性。

那麼,如何訪問AS2中的片段元素?

PS - 我通過減少我想訪問的視圖元素的數量簡化了問題。我試圖避免將AS1 &中的視圖元素從那裏傳遞給AS2。

謝謝

回答

1

如果你有一個全球性的內部AS1AS2作爲內部類(比方說MainActivity),所以您只需建立自定義視圖爲MainActivity類成員。然後您將可以直接在AS2之內訪問它們,而無需直接通過AS1

但是,如果您在不同的類中有AS1AS2,請爲每個類創建一個自定義構造函數,並使用您的自定義視圖作爲構造函數的參數。在這種情況下,您必須將AS1postExecute()方法的意見傳遞給AS2。這並不奇怪,因爲AS2依賴於AS1的執行。