简体   繁体   English

膨胀后,Android找到一个视图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM