2016-02-11 64 views
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); 

然後它只是不斷創造新行至無窮遠..任何幫助嗎?

謝謝。

回答

0

您的setSelection()調用可能調用onItemSelect事件,從而創建無限循環的onItemSelect調用,該調用也無限調用newRow()。

從代碼中不清楚這是否是實際情況,請提供* .xml佈局或至少創建微調器並設置onItemSelectListener的Java代碼的完整部分。

+0

你是對的,我重寫了代碼,發現問題是在每個微調器創建時調用onItemSelect。通過使用setTag和getTag視圖屬性解決它。感謝您的幫助。 – Morce