我刚刚开始使用java&机器人。
下面是我的代码,添加活动中的所有按钮然后隐藏它们。 问题:他们无论如何都要自动添加活动中的所有按钮而不必列出每个按钮,我查看了listA.addall但是不明白如何将活动添加为集合。
这样做的理由是我可能希望改变按钮的数量并且仍然可以使用代码。
public void setup2(){
List<Button> listA = new ArrayList<Button>();
listA.add((Button)findViewById(R.id.button1));
listA.add((Button)findViewById(R.id.button2));
listA.add((Button)findViewById(R.id.button3));
listA.add((Button)findViewById(R.id.button4));
listA.add((Button)findViewById(R.id.button5));
for (Button item : listA)
item.setVisibility(View.INVISIBLE);
}
答案 0 :(得分:1)
是的,这可能是最干净的方式。但是,如果您的按钮都具有类似的id命名(button_1,button_2等),您可以通过字符串而不是直接ID引用进行搜索。以下是按字符串提取按钮的示例:
int resID = getResources().getIdentifier("button_%i", "id", getPackageName());
Button addButton = (Button) findViewById(resID);
然后你可以绕过你所有的按钮。
答案 1 :(得分:0)
假设您的按钮位于视图组e,g,LinearLayout
:
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
if (v.getClass() == Button.class) {
listA.add(v);
}
}
layout
是对包含按钮的布局的引用。
这只是遍历布局中的每个子视图,将它的类类型与Button
进行比较,如果是,则将其添加到您的集合中。