如何以编程方式从布局中获取子视图 [来自 R.layout 资源]
How to get child views programmatically from a layout [from a R.layout resource]
在我的应用程序中,有时需要从布局中获取视图(实际上,它应该是一个)。
我对布局的了解是 int
参考,形式为 R.layout.my_layout
.
我怎样才能看到里面的风景?
我尝试使用
获取根视图
View rootView = (View) getResources().getLayout(R.layout.my_layout)
但显然没有用。 getLayout()
returns一个XMLResourceParser
对象,我不知道如何管理。
我无法使用 ID。
使用布局充气器
View rootView = View.inflate(context, R.layout.my_layout, null);
如果您有布局资源 ID,则需要扩充布局并从中获取视图:
View rootView = getLayoutInflater().inflate(layoutId, null);
使用这个:
ViewGroup rootView = (ViewGroup) getLayoutInflater().inflate(R.layout.my_layout,null);
并通过
访问子视图
rootView.getChildAt(x);
或孩子总数:
rootView.getChildCount();
获得视图后,您只需使用 -
view.findViewById(R.id.childID)
其中,
childID 是父视图的子视图的子 ID。
加载视图:
LayoutInflater inflater = LayoutInflater.from(getContext());
View v = inflater.inflate(R.layout.your_layout, null);
并从中获取子视图:
View sub = v.findViewById(R.id.your_sub_view_id);
在我的应用程序中,有时需要从布局中获取视图(实际上,它应该是一个)。
我对布局的了解是 int
参考,形式为 R.layout.my_layout
.
我怎样才能看到里面的风景?
我尝试使用
获取根视图View rootView = (View) getResources().getLayout(R.layout.my_layout)
但显然没有用。 getLayout()
returns一个XMLResourceParser
对象,我不知道如何管理。
我无法使用 ID。
使用布局充气器
View rootView = View.inflate(context, R.layout.my_layout, null);
如果您有布局资源 ID,则需要扩充布局并从中获取视图:
View rootView = getLayoutInflater().inflate(layoutId, null);
使用这个:
ViewGroup rootView = (ViewGroup) getLayoutInflater().inflate(R.layout.my_layout,null);
并通过
访问子视图rootView.getChildAt(x);
或孩子总数:
rootView.getChildCount();
获得视图后,您只需使用 -
view.findViewById(R.id.childID)
其中,
childID 是父视图的子视图的子 ID。
加载视图:
LayoutInflater inflater = LayoutInflater.from(getContext());
View v = inflater.inflate(R.layout.your_layout, null);
并从中获取子视图:
View sub = v.findViewById(R.id.your_sub_view_id);