使用计数器来防止长编码

时间:2013-07-21 09:07:25

标签: android counter

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

提前谢谢!

2 个答案:

答案 0 :(得分:1)

这与Android无关,但我建议采用以下方法:

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

rbPlayers作为Integer而不是String传递。

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

答案 1 :(得分:1)

  • 如果您的布局元素彼此包含,那么您可以在父元素上调用该方法,它将在其子元素上调用相同的方法。

  • 如果您的对象都从相同的基类继承,您可以将它们放在数组中并使用循环来迭代它们并调用该方法。