0

我一直在寻找一段时间来帮助我解决我的问题,但找不到任何好的教程。我最近开始使用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);
    }
}

先感谢您!

4

2 回答 2

1

这与Android并没有真正的关系,但我建议采用以下方法:

将所有变量(例如sbPlayer5or bPlus6)保存在一个数组中 - 您可以ArrayList用来保存任何类型的对象并使数组自动增长。因此,您可以通过数字索引访问正确的对象。

rbPlayers作为Integer而不是传递String

for然后使用数字索引 ( )遍历您的数组,并setVisibility在循环内调用高于最大值的所有索引。

于 2013-07-21T09:15:02.590 回答
1
  • 如果您的布局元素彼此包含,那么您可以在父元素上调用该方法,它会在其子元素上调用相同的方法。

  • 如果您的对象都继承自同一个基类,您可以将它们放入数组中并使用循环遍历它们并调用该方法。

于 2013-07-21T09:15:23.100 回答