2015-02-15 3 views
1

Я искал ответ на этот вопрос, и мне потребовалось некоторое время, но ни один из ответов, которые я нашел здесь, не был удовлетворительным. Проблема в том, что я хотел обновить запись в базе данных, и мне нужно было преобразовать значение базы данных в значение Spinner. Большинство ответов здесь упомянули решения для Spinners, основанные на массивах, но не на CursorAdapters.Как установить значение Spinner на основе значения из базы данных?

+0

С какой проблемой вы столкнулись с этим кодом? – Fahim

+0

Нет проблем. Это была проблема, для которой я не мог найти решение здесь, но через некоторое время я нашел решение выше, и я решил поделиться им. – frie

ответ

0

После много экспериментов я нашел решение, которое хочу поделиться.

Кажется, что Spinner, основанный на CursorAdapter, использует CursorWrapper, чтобы получить прямой доступ к курсору. Итак, чтобы получить доступ к вашему коду, просто используйте CursorWrapper.

Ниже приведен фрагмент кода в одной из моих программ.

TextView mTextView2 = (TextView) v 
    .findViewById(R.id.payer_payee_default_category); 
Spinner mSpinner = (Spinner) findViewById(R.id.categories_spinner); 
CursorWrapper mCursorWrapper; 
for (int nbr = 0; nbr < mSpinner.getCount(); nbr++) { 
    mCursorWrapper = (CursorWrapper) mSpinner.getItemAtPosition(nbr); 
    if (String.valueOf(mCursorWrapper.getString(1)).equals(
      String.valueOf(mTextView2.getText()))) { 
     mSpinner.setSelection(nbr); 
    } 
} 
+0

Теперь примите ответ, чтобы он был удален из очереди без ответа. –

+0

ОК, но я могу принять его только через 2 дня – frie

+0

Я вижу. Я забыл обо всех этих ограничениях. ;) –

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