2014-10-16 2 views
1

Я заселять блесну с количеством записей из моей базы данных SQlite, используя следующий код:Как разместить (выбрать) счетчик на конкретный элемент по id с помощью simplecursoradapter?

DBHelper db = new DBHelper(getBaseContext()); 
    Cursor cursor_clients = db.select("clients", "_id, name", "ORDER BY name"); // table, fields, filter/order 

    String[] columns = new String[] { "name" }; 
    int[] to = new int[] { android.R.id.text1 }; 

    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursor_clients, columns, to, 0); 
    mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    Spinner spnClients = (Spinner) findViewById(R.id.spnClients); 
    spnClients.setAdapter(mAdapter); 

Он прекрасно работает, и я могу использовать

spnAcademias.getSelectedItemId();

Чтобы получить _ID выбранной записи. Моя проблема: как выбрать элемент на этом счетчике с помощью _id?

У меня есть _id строки, которую я хочу, я хочу, чтобы эта строка была выбрана, а не первая строка, исходящая из запроса.

ответ

2

Делать больше исследований я кончался с решением здесь: setSelection on Spinner based on rowId

Я думал, может быть, был уроженцем решение без цикла, но это не так.

Решение:

public void setSpinnerItemById(Spinner spinner, int _id) 
{ 
    int spinnerCount = spinner.getCount(); 
    for (int i = 0; i < spinnerCount; i++) 
    { 
     Cursor value = (Cursor) spinner.getItemAtPosition(i); 
     long id = value.getLong(value.getColumnIndex("_id")); 
     if (id == _id) 
     { 
      spinner.setSelection(i); 
      break; 
     } 
    } 
} 
0

Если вы сможете так же легко получить текстовое значение строки вы ищете, попробуйте решение здесь, а более конкретно верхний комментарий на нем: Set selected item of spinner programmatically

Используйте следующий : spinnerObject.setSelection (INDEX_OF_CATEGORY2).

...

... Я также нашел способ получения индекса без необходимости петли через адаптер. Я использовал следующий mySpinner.setSelection (arrayAdapter.getPosition («Категория 2»));

+0

Я, кажется, что решение, но я хочу, чтобы выбрать пункт через _id, а не имя. –

 Смежные вопросы

  • Нет связанных вопросов^_^