0

我正在尝试在touchUtil没有 id 的相对布局中的按钮上做一些事情。通常它看起来像:

relativelayout rl1 = (relativelayout) base.findViewById(R.id.layout1);
button btn = (button) rl1.findviewbyId(R.id.buttonX);
touchUtil(btn);

但我正在处理的是 ScrollView、RelativeLayout、LinearLayout(没有 id),然后是按钮。

如何使用 touchutils 按下该按钮?

4

1 回答 1

0

您始终可以使用ViewGroup#getChildAt()基于索引检索视图。


另外
如果你有这样的布局:

<ScrollView>
    <RelativeLayout>
        <LinearLayout>
            <Button/>
            <Button/>
        </LinearLayout>
        <TextView/>
    </RelativeLayout>
</ScrollView>

然后你可以像这样遍历 ViewTree:

FrameLayout content = (FrameLayout) findViewById(android.R.id.content);
ScrollView scrollView = (ScrollView) content.getChildAt(0);
RelativeLayout relativeLayout = (RelativeLayout) scrollView.getChildAt(0);
LinearLayout linearLayout = (LinearLayout) relativeLayout.getChildAt(0);

Button button1 = (Button) linearLayout.getChildAt(0);
Button button2 = (Button) linearLayout.getChildAt(1);

TextView textView = (TextView) relativeLayout.getChildAt(1);

最好的方案是简单地要求布局设计人员将 id 添加到您想要的元素中。

于 2012-10-23T20:08:50.910 回答