识别包含内的视图

时间:2017-02-07 09:55:02

标签: android layout view

我有这个包括

enter image description here

我必须以相同的布局“包括”这次“包括”两次。

enter image description here

如何在RL1中获取TextView? 我以为我能做到这一点:

RelativeLayout layout1 = (RelativeLayout) findViewById(R.id.RL1);
TextView textView = (TextView)layout1.findViewById(R.id.textViewId);

但这种方式似乎我得到了来自RL1和RL2的TextView的相同实例。

这是完整的布局:

<LinearLayout>

    <RelativeLayout          
        android:id="@+id/RL1">
        <include layout="@layout/game_area"/>
    </RelativeLayout>   


    <RelativeLayout         
        android:id="@+id/RL2">
        <include layout="@layout/game_area"/>
    </RelativeLayout>

</LinearLayout>

提前谢谢

2 个答案:

答案 0 :(得分:0)

按ID搜索时,您总能找到第一个项目,因此隐藏了第二个小部件。

然而,它可以解决

<include> -- id1
-- stuff
</include>
<include> -- id2
-- stuff
</include>

所以我们可以通过首先查找id2 / id1找到子元素。

View include_1 = findViewById(R.id.id1); 
View include_2 = findViewById(R.id.id2); 

最后

include_2.findViewById(R.id.elementx );

参考:https://stackoverflow.com/a/10821976/5707364

答案 1 :(得分:0)

<LinearLayout>

<RelativeLayout>
    <include android:id="@+id/RL1" layout="@layout/game_area"/>
</RelativeLayout>   


<RelativeLayout>
    <include android:id="@+id/RL2" layout="@layout/game_area"/>
</RelativeLayout>

您需要将id添加到include代码