My question is like this SO question (and other, similar questions), but none of the proposed solutions are working for me. All these...
String selectedShelf = spinner.getItemAtPosition(spinner.getSelectedItemPosition()).toString();
String selectedShelf = spinner.getSelectedItem().toString();
String selectedShelf = spinner.getItemAtPosition(position).toString();
String selectedShelf = parentView.getItemAtPosition(position).toString();
...result in the content of selectedShelf
being "android.content.ContentResolver$CursorWrapperInner@43bb89b0".
How can I retrieve the value of the selected string?
Here is my code:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View fragmentView = inflater.inflate(R.layout.fragment_browse_spinner, container, false);
Spinner spinner = (Spinner)fragmentView.findViewById(R.id.browseSpinner);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
if (id != -1L) {
String selectedShelf = ...;
Log.d(LOG_TAG, "selectedShelf: " + selectedShelf);
}
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
}
});
adapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_spinner_item, // This is the layout that will be used for the standard/static part of the spinner. (You can use android.R.layout.simple_list_item_2 if you want two lines to be shown here.)
null,
new String[] {DbContentProvider.KEY_SHELF_NAME, DbContentProvider.KEY_EXTRA_SHELF_INFO},
new int[]{android.R.id.text1, android.R.id.text2},
0
);
// This sets the layout that will be used when the dropdown views are shown. I'm using android.R.layout.simple_list_item_2 so the subtext will also be shown.
adapter.setDropDownViewResource(android.R.layout.simple_list_item_2);
spinner.setAdapter(new NothingSelectedSpinnerAdapter(
adapter,
R.layout.browse_spinner_row_nothing_selected,
getActivity()));
getLoaderManager().initLoader(0, null, this);
return fragmentView;
}