gpt4 book ai didi

java - 操作布局上的所有按钮

转载 作者:行者123 更新时间:2023-12-01 12:41:00 25 4
gpt4 key购买 nike

我有一个布局(FullBody),里面有一些其他布局(页眉、页脚),每个布局都有一组按钮和其他元素(包括其他布局)。我如何使用 for() 或其他东西操作所有按钮?

我已经尝试过这个(Easy way to setOnClickListener() on all Activity Buttons):

ViewGroup group = (ViewGroup)findViewById(R.id.myrootlayout);
View v;
for(int i = 0; i < group.getChildCount(); i++) {
v = group.getChildAt(i);
if(v instanceof Button) v.setOnClickListener(this)
}

这仅选择布局的第一级子级。我如何访问所有级别(例如 DFS)?

最佳答案

要遍历布局的所有级别,您需要应用递归:

ViewGroup group = (ViewGroup)findViewById(R.id.myrootlayout);
setListenerForGroup(group);

地点:

void setListenerForGroup(ViewGroup group) {
int count = group.getChildCount(); <------- more efficient
for(int i = 0; i < count; i++) {
View v = group.getChildAt(i);
if (v instanceof Button)
v.setOnClickListener(this);
else if (v instanceof ViewGroup)
setListenerForGroup((ViewGroup)v);
}
}

关于java - 操作布局上的所有按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25097548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com