[英]Android find a view after it is inflated
I am creating some views programmatically using ViewStubs
, as shown below. 我正在使用
ViewStubs
以编程方式创建一些视图,如下所示。
RelativeLayout allCommissionsContainer = (RelativeLayout) mBaseLayout.findViewById(R.id.allCommissionsContainer);
ViewStub viewStubCommission = new ViewStub(mActivity);
viewStubCommission.setLayoutResource(R.layout.viewstub_commission_container);
allCommissionsContainer.addView(viewStubCommission);
viewStubCommission.inflate();
But how do I find that inflated view (a RelativeLayout
) later in the code? 但是,如何在以后的代码中找到膨胀的视图(
RelativeLayout
)? If I use viewStubCommission.setTag("MyTag");
如果我使用
viewStubCommission.setTag("MyTag");
won't it be applied to the actual ViewStub
and not the inflated View? 不会将其应用到实际的
ViewStub
而不是膨胀的View吗? I tried this but it gave me a null pointer exception
. 我试过了,但它给了我一个
null pointer exception
。
I need something like allCommissionsContainer.findViewById(R.id.someId)
or allCommissionsContainer.findViewWithTag("MyTag")
. 我需要类似
allCommissionsContainer.findViewById(R.id.someId)
或allCommissionsContainer.findViewWithTag("MyTag")
。
After some testing I realized I can use 经过一些测试,我意识到我可以使用
RelativeLayout myRelativeLayout = (RelativeLayout) viewStubCommission.inflate();
and then set a tag or id 然后设置标签或ID
myRelativeLayout.setTag("MyTag");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.