2017-10-06 81 views
-1

我正在開發電子com應用程序。我正在嘗試創建動態微調器。微調器取決於產品屬性。我能夠創建旋轉器也映射數據,但是我想在旋轉器更改其數據時讓所有旋轉器選定項目,以便我可以匹配正確的產品變體。創建動態旋轉器並獲取每個旋轉器的值,每當旋轉器項更改時,獲取所有旋轉器值

這裏是我的代碼片段

final List<Attribute> attributes = product_.getAttributes(); 
     for (i = 0; i < attributes.size(); i++) { 
      ArrayList<String> spinnerArray = (ArrayList<String>) attributes.get(i).getOptions(); 
      ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, spinnerArray); 
      Spinner spinner = new Spinner(getActivity()); 
      spinner.setAdapter(spinnerArrayAdapter); 
      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) { 

       } 
       @Override 
       public void onNothingSelected(AdapterView<?> adapterView) { 
       } 
      }); 
      dynamicProductProperties.addView(spinner); 

     } 
+1

你爲什麼在循環使用OnItemSelectedListener? –

+0

我不知道微調的ID .. –

+0

ID和Loop之間有什麼關係,你可以去相關的XML檢查ID ... –

回答

1

首先,你需要OnItemSelectListener的同一個實例設置爲你的所有心思。讓你的活動或片段實現OnItemSelectListener然後調用spinner.setOnItemSelectListener(this);

onItemSelected方法,你可以運行這段代碼有selecteds。

ArrayList<String> selectedList = new ArrayList(); 

    for (int i = 0; i < dynamicProductProperties.getChildCount(); i++) { 
     View view = dynamicProductProperties.getChildAt(i); 
     if (view instanceof Spinner){ 
      String selected = (String) ((Spinner) view).getSelectedItem(); 
      selectedList.add(TextUtils.isEmpty(selected) ? "" : selected); 
     } 
    } 

好運

埃姆雷

+0

看起來像優雅的解決方案..讓我試試 –

+0

完美謝謝 –

+1

您的歡迎:) –