如何根据数据库中的值设置 Spinner 值?
How to set Spinner value based on value from database?
我一直在寻找这个问题的答案,这花了我很多时间,但我在这里找到的 none 答案令人满意。
问题是我想更新数据库中的记录,我需要将数据库值转换为 Spinner 值。这里的大多数答案都提到了基于数组的 Spinners 解决方案,但没有提到基于 CursorAdapters 的解决方案。
经过大量试验,我找到了一个解决方案,我想分享一下。
似乎基于 CursorAdapter 的 Spinner 使用 CursorWrapper 来直接访问 Cursor。因此,要在您的代码中访问,只需使用 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);
}
}
我一直在寻找这个问题的答案,这花了我很多时间,但我在这里找到的 none 答案令人满意。 问题是我想更新数据库中的记录,我需要将数据库值转换为 Spinner 值。这里的大多数答案都提到了基于数组的 Spinners 解决方案,但没有提到基于 CursorAdapters 的解决方案。
经过大量试验,我找到了一个解决方案,我想分享一下。
似乎基于 CursorAdapter 的 Spinner 使用 CursorWrapper 来直接访问 Cursor。因此,要在您的代码中访问,只需使用 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);
}
}