Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Android Spinner创建运行事件_Android_Loops_Events_Spinner - Fatal编程技术网

Android Spinner创建运行事件

Android Spinner创建运行事件,android,loops,events,spinner,Android,Loops,Events,Spinner,我试图寻找答案,但很难找到正确的搜索词。 所以我的问题是,我正在以编程方式创建一个TableRow,其中有两个微调器,上面有选项。当我在该微调器上选择某个对象时,它会在下面创建另一行,该行的设计相同,但微调器上的值不同。我的问题是,每当我创建第二行时,它都在循环中运行onItemSelect。我相信,循环之所以发生,是因为事件正在生成的新微调器上运行。有没有办法在我创建它时不让它运行,而只在我选择它的选项时运行 不知道你需要从代码,但我会把一些在这里任何其他只是要求,我会尽快张贴 我创建微调器:

我试图寻找答案,但很难找到正确的搜索词。 所以我的问题是,我正在以编程方式创建一个TableRow,其中有两个微调器,上面有选项。当我在该微调器上选择某个对象时,它会在下面创建另一行,该行的设计相同,但微调器上的值不同。我的问题是,每当我创建第二行时,它都在循环中运行onItemSelect。我相信,循环之所以发生,是因为事件正在生成的新微调器上运行。有没有办法在我创建它时不让它运行,而只在我选择它的选项时运行

不知道你需要从代码,但我会把一些在这里任何其他只是要求,我会尽快张贴

我创建微调器:

spin1 = new Spinner(this);
spin1.setLayoutParams(new TableRow.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
spin1.setOnItemSelectedListener(this);
在选择项目时,我添加以下内容:

TableRow tableRowNow = (TableRow) parent.getParent();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                            this, android.R.layout.simple_spinner_item,            indiceSpinnerArray1);
                        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems = (Spinner) tableRowNow.getChildAt(0);
sItems.setAdapter(adapter);
sItems.setSelection(position);


ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
                            this, android.R.layout.simple_spinner_item,     spinnerArray2);
                        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems11 = (Spinner) tableRowNow.getChildAt(1);
sItems11.setAdapter(adapter1);
sItems11.setSelection(1);
sItems11.setEnabled(false);

newRow();

TableLayout tabLayoutTemp1 = (TableLayout) tableRowNow.getParent();
int numRowTemp = tabLayoutTemp1.indexOfChild(tableRowNow);

TableRow secondTabRow = (TableRow) tabLayoutTemp1.getChildAt(numRowTemp + 1);
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
                            this, android.R.layout.simple_spinner_item,     spinnerArray3);
                        adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems2 = (Spinner) secondTabRow.getChildAt(1);
sItems2.setAdapter(adapter2);
TableRow tableRowNow=(TableRow)parent.getParent();
ArrayAdapter适配器=新的ArrayAdapter(
这是android.R.layout.simple_微调器_项,指示InnerArray1);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器sItems=(微调器)tableRowNow.getChildAt(0);
setAdapter(适配器);
地点.选举(职位);
ArrayAdapter适配器1=新的ArrayAdapter(
这个,android.R.layout.simple_微调器_项,spinnerray2);
adapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器sItems11=(微调器)tableRowNow.getChildAt(1);
sItems11.设置适配器(适配器1);
地点11.选举(1);
sItems11.setEnabled(false);
纽罗();
TableLayout TableLayoutTemp1=(TableLayout)tableRowNow.getParent();
int numRowTemp=tabLayoutTemp1.indexOfChild(tableRowNow);
TableRow secondTabRow=(TableRow)tabLayoutTemp1.getChildAt(numRowTemp+1);
ArrayAdapter适配器2=新的ArrayAdapter(
这个,android.R.layout.simple_微调器_项目,spinnerray3);
adapter2.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
微调器sItems2=(微调器)secondTabRow.getChildAt(1);
sItems2.setAdapter(适配器2);
然后它不断地创建无限多的新行。。有什么帮助吗


谢谢。

您的setSelection()调用可能正在调用onItemSelect事件,从而创建了onItemSelect调用的无限循环,该循环也无限次地调用newRow()


您的代码不清楚这是否是实际情况,请提供*.xml布局或至少是Java代码的完整部分,在其中创建微调器并设置onItemSelectListener。

您的setSelection()调用可能正在调用onItemSelect事件,这样就创建了onItemSelect调用的无限循环,它也无限地调用newRow()


从您的代码中不清楚这是否是实际情况,请提供*.xml布局或至少是Java代码的完整部分,您可以在其中创建微调器并设置onItemSelectListener。

如果您是正确的,我重写了代码,发现问题在于每次创建微调器时都会调用onItemSelect。通过使用setTag和getTag视图属性解决了此问题。感谢您的帮助。您是正确的,我重新编写了代码,发现问题在于每次创建微调器时都会调用onItemSelect。使用setTag和getTag查看属性解决了此问题。感谢您的帮助。