Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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 将多个微调器设置为默认值_Java_Android - Fatal编程技术网

Java 将多个微调器设置为默认值

Java 将多个微调器设置为默认值,java,android,Java,Android,我在GridLayout中有18个微调器,在活动布局中手动为每个微调器分配值(没有适配器)。现在我需要一个“清除按钮”来调用一个方法:“onClickClear”,该方法将每个微调器设置为默认值 有没有一种方法可以做到这一点,而无需编写对18个微调器的引用并使用setSelection(0)。我对Android非常陌生,这是我正在做的一个概念验证项目:) 此处pos为整数(您的数组项目位置) 数组如下所示,然后pos=0 String str[] = new String{"Select Gen

我在GridLayout中有18个微调器,在活动布局中手动为每个微调器分配值(没有适配器)。现在我需要一个“清除按钮”来调用一个方法:“onClickClear”,该方法将每个微调器设置为默认值

有没有一种方法可以做到这一点,而无需编写对18个微调器的引用并使用setSelection(0)。我对Android非常陌生,这是我正在做的一个概念验证项目:)

此处pos为整数(您的数组项目位置)

数组如下所示,然后pos=0

String str[] = new String{"Select Gender","male", "female" };
然后,我选择了

@Override
public void onItemSelected(AdapterView<?> main, View view, int position,
        long Id) {

    if(position > 0){
      // get spinner value
    }else{
      // show toast select gender
    }

}
@覆盖
已选择公共位置(适配器视图主视图、视图视图、内部位置、,
长Id){
如果(位置>0){
//获取微调器值
}否则{
//显示吐司并选择性别
}
}

只需将它们全部添加到微调器数组中,类似于微调器[]微调器=新微调器[18];然后微调器[0]=findViewById。。。 这样,您可以使用for循环轻松地将它们全部设置为默认值。 用于(微调器微调器:微调器)
spinner.setSelection(0)

是最懒的解决方案,但不是最好的解决方案

找到对其父对象的引用,并在其子对象上循环

for (int i = 0; i < viewGroup.getChildCount(); i++) {
    View currentView = viewGroup.getChildAt(i);
    if (currentView instanceof Spinner) {
        ((Spinner) currentView).setSelection(0);
    }
}
for(int i=0;i

或者你可以把它们放在一个数组中,然后在上面循环,但是你必须找到它们18次才能填充数组。

不,我认为这是不可能的。你必须参考纺纱机。是的,这似乎简化了一些事情。这就是我要找的。非常感谢。这是针对个人的,我不喜欢instanceof的解决方案,我觉得这有点粗糙,但是,即使您不做任何更改就添加或删除微调器,该解决方案也会起作用,这是最简单的努力,并且得到了工作doneYes,我认为这是标准的方法,但如果你有18个旋转器,那将是一个漫长的旅程。我想也许有更具活力的方式来做到这一点,至少是为了简洁优雅;)
for (int i = 0; i < viewGroup.getChildCount(); i++) {
    View currentView = viewGroup.getChildAt(i);
    if (currentView instanceof Spinner) {
        ((Spinner) currentView).setSelection(0);
    }
}