Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将自定义数量的数组对象添加到v.findviewbyd(R.id.iterateHere1),而无需重复代码_Java_Android - Fatal编程技术网

Java 将自定义数量的数组对象添加到v.findviewbyd(R.id.iterateHere1),而无需重复代码

Java 将自定义数量的数组对象添加到v.findviewbyd(R.id.iterateHere1),而无需重复代码,java,android,Java,Android,我想在添加v.findviewbyd(R.id.iterateHere1)时迭代10次,而不必重复相同的语法 我首先想到的是: SwitchCompat instance1 = v.findViewById(R.id.iterateHere1); SwitchCompat instance2 = v.findViewById(R.id.iterateHere2); SwitchCompat instance3 = v.findViewById(R.id.iterateHere3); 上面的代码

我想在添加v.findviewbyd(R.id.iterateHere1)时迭代10次,而不必重复相同的语法

我首先想到的是:

SwitchCompat instance1 = v.findViewById(R.id.iterateHere1);
SwitchCompat instance2 = v.findViewById(R.id.iterateHere2);
SwitchCompat instance3 = v.findViewById(R.id.iterateHere3);
上面的代码编写了10次

我现在有:

        SwitchCompat[] array = new SwitchCompat[10];

        for (int i = 0; i < 10; i++) {
            SwitchCompat instance;
            array[i] = instance = v.findViewById(R.id.iterateHere1);
            instances.add(instance);
        }
SwitchCompat[]数组=新的SwitchCompat[10];
对于(int i=0;i<10;i++){
SwitchCompat实例;
数组[i]=instance=v.findviewbyd(R.id.iterateHere1);
实例。添加(实例);
}
对每个实例都有效


我的问题是如何添加10
R.id.iterateHere1
而不重复代码?

您可以通过以下方式获得每个SwitchCompat的标识符:

SwitchCompat[] array = new SwitchCompat[10];

 for (int i = 0; i < 10; i++) 
      {
      SwitchCompat instance;
      String switchId = "iterateHere" + i;
      int resID = getResources().getIdentifier(switchId, "id", getActivity().getPackageName());

      array[i] = instance = v.findViewById(resID);
      instances.add(instance);
      }
SwitchCompat[]数组=新的SwitchCompat[10];
对于(int i=0;i<10;i++)
{
SwitchCompat实例;
字符串switchId=“iterateHere”+i;
int resID=getResources().getIdentifier(开关id,“id”,getActivity().getPackageName());
数组[i]=instance=v.findviewbyd(resID);
实例。添加(实例);
}

可能将开关放在一个视图组中,然后遍历它们,类似这样

 ArrayList<SwitchCompat> instances = new ArrayList<>(10);
 ViewGroup parent = findViewById(R.id.parent);
        for (int index = 0; index < parent.getChildCount(); ++index) {
            View nextChild = parent.getChildAt(index);
            if (nextChild instanceof SwitchCompat) {
                instances.add((SwitchCompat) nextChild);
            }
        }
ArrayList实例=新的ArrayList(10);
ViewGroup parent=findviewbyd(R.id.parent);
对于(int index=0;index
必须使用
getActivity().getPackageName()
因为片段,但现在得到空指针。