我一直在寻找帮助我解决问题,但找不到任何好的教程。我最近刚开始使用Android,所以我不是那么好的喷气机。我的问题是如何以一种我无需键入所有内容的方式转换代码。我想也许可以用一个柜台。我想知道是否有可能只需设置搜索栏和按钮一次的可见性。这是我的代码:
private void numberPlayers() {
Intent intent = getIntent();
String str = intent.getStringExtra("rbPlayers");
if (str.equals("rb2")) {
sbPlayer3.setVisibility(View.GONE);
bPlus3.setVisibility(View.GONE);
sbPlayer4.setVisibility(View.GONE);
bPlus4.setVisibility(View.GONE);
sbPlayer5.setVisibility(View.GONE);
bPlus5.setVisibility(View.GONE);
sbPlayer6.setVisibility(View.GONE);
bPlus6.setVisibility(View.GONE);
} else if (str.equals("rb3")) {
sbPlayer4.setVisibility(View.GONE);
bPlus4.setVisibility(View.GONE);
sbPlayer5.setVisibility(View.GONE);
bPlus5.setVisibility(View.GONE);
sbPlayer6.setVisibility(View.GONE);
bPlus6.setVisibility(View.GONE);
} else if (str.equals("rb4")) {
sbPlayer5.setVisibility(View.GONE);
bPlus5.setVisibility(View.GONE);
sbPlayer6.setVisibility(View.GONE);
bPlus6.setVisibility(View.GONE);
} else if (str.equals("rb5")) {
sbPlayer6.setVisibility(View.GONE);
bPlus6.setVisibility(View.GONE);
}
}
提前谢谢!
答案 0 :(得分:1)
这与Android无关,但我建议采用以下方法:
将所有变量(例如sbPlayer5
或bPlus6
)保存在数组中 - 您可以使用ArrayList
来保存任何类型的对象并让数组自动增长。因此,您可以通过数字索引访问正确的对象。
将rbPlayers
作为Integer
而不是String
传递。
然后使用数字索引(for
)遍历数组,并在循环内调用setVisibility
以获取高于最大值的所有索引。
答案 1 :(得分:1)
如果您的布局元素彼此包含,那么您可以在父元素上调用该方法,它将在其子元素上调用相同的方法。
如果您的对象都从相同的基类继承,您可以将它们放在数组中并使用循环来迭代它们并调用该方法。