Java 将自定义数量的数组对象添加到v.findviewbyd(R.id.iterateHere1),而无需重复代码
我想在添加v.findviewbyd(R.id.iterateHere1)时迭代10次,而不必重复相同的语法 我首先想到的是: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); 上面的代码
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()
因为片段,但现在得到空指针。