1
我試圖搜索答案,但很難找到正確的搜索條件。 所以我的問題是,我正在創建一個TableRow,帶有2個選項的Spinner。當我在那個微調器上選擇了一些東西時,它會在下面創建另一個相同的設計,但在旋轉器上有不同的值。我的問題是,無論何時創建第二行,它都會在循環中運行onItemSelect。我相信,循環正在發生,因爲事件正在生成的新微調器上運行。有沒有辦法讓它在我創建它時運行,但只有當我選擇它時纔會運行它?Android微調器創建運行事件
不知道你需要從代碼中得到什麼,但我會在這裏放置一些東西,只是要求我儘快發佈。
我創建了微調:
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);
然後它只是不斷創造新行至無窮遠..任何幫助嗎?
謝謝。
你是對的,我重寫了代碼,發現問題是在每個微調器創建時調用onItemSelect。通過使用setTag和getTag視圖屬性解決它。感謝您的幫助。 – Morce