코드에서 동적으로 스피너 세트를 사용자 제어 프레임 레이아웃 유형에 추가합니다 (데이터 바인딩을 사용하여 뷰 모델의 값을 설정 함). '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 인덱스에 세트를 넣어 :