我的Fragment
包含progress bar
(当前可见性已消失),button
和空LinearLayout
容器。像:
<LinearLayout id="@+id/ll"> </LinearLayout>
功能如此,在按钮点击时会执行async task
。
在postExecute()
上,自定义视图在空布局容器ll
中膨胀。此自定义视图在单独的类中定义。像:
class CustomLayout extends LinearLayout{
Button b1;
}
在此布局中,有一个按钮,可以启动另一个async task (say, AS2)
。
现在,在AS2的postExecute()
上,我想提升进度条VISIBLE
的可见性。
那么,如何在AS2中访问Fragment的元素?
PS - 我通过减少要访问的视图元素的数量来简化问题。我试图避免首先在AS1&amp;中传递视图元素从那里到AS2。
谢谢
答案 0 :(得分:1)
如果您在全局范围内有AS1
和AS2
作为内部类(假设为MainActivity
),那么只需将自定义视图创建为MainActivity
的类成员即可。然后,您就可以直接在AS2
内访问它们,而无需先通过AS1
传递它们。
但是如果你在不同的类中有AS1
et AS2
,那么为每个类创建一个自定义构造函数,并将自定义视图作为构造函数的参数。在这种情况下,您必须将AS1
postExecute()
方法的观点传递给AS2
。这并不奇怪,因为AS2依赖于AS1的执行。