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