Ich füge eine Reihe von Spinner dynamisch aus dem Code zu einem Benutzer Steuerelement - Frame-Layout-Typ (mit Datenbindung, um die Werte aus einem Ansichtsmodell festzulegen), ist dies die Funktion des Layouts (ich nenne es vom Ctor) aufzublasen:android Spinner setText entfernt andere Elemente, die diesen Text nicht enthalten- BUG
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);
}
}
ich einen bestimmten Index aus den Spinner Werte versucht zu wählen:
spinner.setSelection(s.getIndex());
aber es didn‘ Ich habe eine Lösung gefunden (im Stack über Fluss):
spinner.setText(spinnerArrayAdapter.getItem(s.getIndex()));
Dies ist ein Wert aus Spinner von einem String-Wert Element auswählen. aber hier habe ich einen wirklich seltsamen Fehler: alle Werte des Spinner werden klar und nur die Werte, die diese Zeichenfolge enthält bleiben in der Liste der Spinner.
ein anderes Problem ist, dass dies verursacht, die Farbmaterial Design dieses Spinneres verschwindet irgendwelche Ideen ??