Выбранный элемент Spinner для Android
Я заполняю счетчик из базы данных, подобной этой
// Populating the City Spinner
Cursor cities = db.cityList();
startManagingCursor(cities);
// create an array to specify which fields we want to display
String[] from = new String[] { DBAdapter.KEY_NAME };
// create an array of the display item we want to bind our data to
int[] to = new int[] { android.R.id.text1 };
Spinner cityList = (Spinner) this.findViewById(R.id.citySpiner);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cities, from, to);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
cityList.setAdapter(adapter);
Когда я пытаюсь получить содержимое из выбранного элемента счетчика, как это
// Get the City
Spinner getCity = (Spinner) findViewById(R.id.citySpiner);
String cityName = getCity.getSelectedItem().toString();
я получаю следующее.
Есть ли способ получить название города или идентификатор города из базы данных.
![enter image description here]()
Ответы
Ответ 1
Я думаю, поскольку вы используете пользовательский адаптер и предоставляете три списка в адаптере...
вы не можете получить выделенный текст, просто вызвав getSelectedItem()..
Используйте это:
Spinner mySpinner = (Spinner)findViewbyId(R.id.spinner);
int position = mySpinner.getSelectedItemPosition();
String Text = yourCityList[position].toString(); // dont know which list is holding the city list...
// i didn't use any db in any of my app so cant tell you how can you get list...
// leaving it to you... :)
Надеюсь, это поможет....
Ответ 2
Просто возьмите адаптер со своего счетчика и получите строку из курсора
Cursor cursor = (Cursor) myAdapter.getItem(position);
String cityName = cursor.getString(cursor.getColumnIndex(DBAdapter.KEY_NAME));
Ответ 3
Получить текст с выделенным элементом spinner?
Ответ 4
List<String> list = new ArrayList<String>();
s = (Spinner)findViewById(R.id.spinner1);
SQLiteDatabase sqldb = db.openDataBase();
Cursor cr = sqldb.rawQuery("select Name from employee",null);
if (cr.moveToFirst()) {
do {
list.add(cr.getString(0).toString());
Toast.makeText(this,cr.getString(0).toString(),Toast.LENGTH_LONG).show();
ArrayAdapter <String> a= new ArrayAdapter(this, android.R.layout.simple_spinner_item,list);
a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(a);
} while (cr.moveToNext());
}//urvesh patel
Ответ 5
То, как я это достиг, было следующим:
Вам нужно будет применить метод getItem() к курсору, поскольку он по существу просто возвращает курсор, а не отдельную строку в курсоре, которая раздражает.
final Cursor cursor = (Cursor) yourSpinner.getAdapter().getItem( position );
Переместите курсор в первую строку
cursor.moveToFirst();
Теперь вы можете получить строку из курсора, используя имя столбца, которое соответствует первоначально заданной таблице, когда вы устанавливаете свой адаптер спиннеров, который был схвачен выше, используя getAdapter()
final String selectedPartUUID = cursor.getString( cursor.getColumnIndex( TABLE_COLUMN_NAME ) );
Надеюсь, что это поможет и оценят любую обратную связь:)
Ответ 6
Надеюсь, это поможет!
Toast.makeText(getApplicationContext(), "getSelectedItem=" + spinnerString, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "getSelectedItemPosition=" + nPos, Toast.LENGTH_SHORT).show();