2017-03-05 5 views
0

코드에서 동적으로 스피너 세트를 사용자 제어 프레임 레이아웃 유형에 추가합니다 (데이터 바인딩을 사용하여 뷰 모델의 값을 설정 함). 'android spinner setText는이 텍스트를 포함하지 않는 다른 요소를 제거합니다. - BUG

spinner.setSelection(s.getIndex()); 

하지만 didn를 :

private void initInflate() { 

     LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     binding = SensorSettingsBinding.inflate(inflater, this, true); 
     binding.linear.setDividerPadding(10); 

     for (SensorSettingViewModel s :Settings) { 
      MaterialBetterSpinner spinner = new MaterialBetterSpinner(getContext()); 
      spinner.setHint(s.getSettingName()); 
      spinner.setHintTextColor(getResources().getColor(R.color.colorHint)); 
      spinner.setMinimumWidth(100); 
      spinner.setFloatingLabelTextSize(40); 
      spinner.setTextSize(15); 
      spinner.setFloatingLabel(MaterialAutoCompleteTextView.FLOATING_LABEL_HIGHLIGHT); 
      spinner.setFloatingLabelText(s.getSettingName()); 
      spinner.setId(s.getId()); 
      ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, s.getValues()); 
      spinner.setAdapter(spinnerArrayAdapter); 
      spinner.setText(spinnerArrayAdapter.getItem(s.getIndex())); 
//   spinner.setSelection(s.getIndex()); 
      binding.linear.addView(spinner); 

      MarginLayoutParams params = (ViewGroup.MarginLayoutParams)spinner.getLayoutParams(); 
      params.setMargins(30, 0, 30, 0); //substitute parameters for left, top, right, bottom 
      spinner.setLayoutParams(params); 
     } 
    } 

I 스피너 값에서 특정 인덱스를 선택하려고 :) 이 레이아웃을 팽창시키는 기능 (I는 ctor에에서 호출) 인 t 작업,이 솔루션을 찾았습니다 (스택 오버 흐름) :

이 값은 스피너에서 문자열 값 항목으로 값을 선택합니다. 하지만 여기에는 정말 이상한 버그가 있습니다. 회 전자의 모든 값이 명확하게으로 표시되며이 문자열이 포함 된 값만 회 전자 목록에 있습니다.

또 다른 문제는이 상기 색재 디자인이 로딩 disapears 어떤 아이디어 원인이다 ?? 를 내가는, setAdapter을 befor 인덱스에 세트를 넣어 :

답변

0

나에 의한 문제는 이런 식으로 해결했다

spinner.setText(spinnerArrayAdapter.getItem(s.getIndex()));  
spinner.setAdapter(spinnerArrayAdapter); 

하지만 난 여전히 안드로이드의 버그라고 생각합니다 ..
어쨌든 다른 재질 디자인 색상에 관한 문제는이 변경과 관련이 없습니다.