Ich mache ein Projekt für die Universität, ich habe ein DialogFragment, wo ich ein neues Tier für eine Datenbank aufnehme. Im Formular befindet sich ein Spinner, der aus einer Datenbank geladen wird. Dies ist die „onCreate“ Code of DialogFragment:Warum ist mein Spinner leer?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
LayoutInflater inflater = getActivity().getLayoutInflater();
View v = inflater.inflate(R.layout.dialog_add_animal, null);
Spinner spEspecies = (Spinner) v.findViewById(R.id.spinner);
Cursor c = getActivity().getContentResolver().query(ContratoBBDD.Especies.URI_CONTENIDO,null,null,null,null);
SimpleCursorAdapter adaptador =
new SimpleCursorAdapter(getActivity().getApplicationContext() ,android.R.layout.simple_spinner_item,c,
new String[]{ContratoBBDD.Especies._id},
new int [] {android.R.id.text1},SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER );
Log.d("Tam", c.getCount() + "");
Log.d("Col", c.getColumnCount() + "");
adaptador.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spEspecies.setAdapter(adaptador);
ActionBar actionBar = ((AppCompatActivity) getActivity())
.getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDefaultDisplayHomeAsUpEnabled(false);
}
ich im Protokoll und Debuggen sehen kann, dass die Cursor-Information hat, wie die Spinner tut - aber wenn ich im Spinner klicken, es ist leer. Wo verliere ich die Informationen?
Nicht sicher, ob es richtig ist, den Spinner-Adapter als 'SimpleCursorAdapter' festzulegen. Versuchen Sie, die Daten zuerst zu holen, indem Sie sie in ein Array einfügen, ein 'ArrayAdapter' erstellen und es als' SpinnerAdapter' festlegen. Es ist sehr wahrscheinlich, dass der Spinner-Adapter unmittelbar vor dem Abrufen der Daten gesetzt wird. – CaptJak