dimanche 12 avril 2015

Set Spinner value based on database record in android

I am pulling data from a database and populating a series of EditTexts and Spinners with the data.


I can fill the EditTexts without issue but the spinners are resetting to their default values.


I have tried using setSelection() but it doesn't work.


Here is my code:



spinner = (Spinner) rootView.findViewById(R.id.vehicle);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item,
new String[] {"Car", "Bus", "Plane", "Bicycle"});
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.getOnItemSelectedListener();

spinner = (Spinner) rootView.findViewById(R.id.category);
ArrayAdapter<String> adapterCategory = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item,
new String[] {"Vacation", "Commute", "Leisure", "Shopping"});
adapterCategory.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterCategory);
spinner.getOnItemSelectedListener();

}

public void updateTripView(String position) {

Cursor cursor = ((TripListActivity)getActivity()).dbHelper.fetchTripById(position);
if (cursor != null) {
try {
String tripId =
cursor.getString(cursor.getColumnIndexOrThrow("tripId"));
int tripCategory =
cursor.getInt(cursor.getColumnIndexOrThrow("category"));

int tripVehicle =
cursor.getInt(cursor.getColumnIndexOrThrow("vehicle"));
String tripDistance =
cursor.getString(cursor.getColumnIndexOrThrow("distance"));
String tripDate =
cursor.getString(cursor.getColumnIndexOrThrow("date"));
String tripNote =
cursor.getString(cursor.getColumnIndexOrThrow("note"));

((TextView) rootView.findViewById(R.id.tripId)).setText(tripId);
((Spinner) rootView.findViewById(R.id.category)).setSelection(tripCategory);
((Spinner) rootView.findViewById(R.id.vehicle)).setSelection(tripVehicle);
((TextView) rootView.findViewById(R.id.distance)).setText(tripDistance);
((TextView) rootView.findViewById(R.id.date)).setText(tripDate);
((TextView) rootView.findViewById(R.id.note)).setText(tripNote);

} catch (IllegalArgumentException e) {
Log.d(TAG, "IllegalArgumentException");
}
}
mCurrentPosition = position;
}

Aucun commentaire:

Enregistrer un commentaire