微调器显示数据库中的数据

Posted

技术标签:

【中文标题】微调器显示数据库中的数据【英文标题】:spinner show data from database 【发布时间】:2011-02-12 18:49:18 【问题描述】:

我想使用微调器(显示数据库中的数据)可以将字符串返回给我 从这种情况下它可以工作

spinner_InputLanguage = (Spinner)findViewById(R.id.spinner_InputLanguage);

    ArrayAdapter<CharSequence> adapter
      = ArrayAdapter.createFromResource(this,
        R.array.language, android.R.layout.simple_spinner_item);

      spinner_InputLanguage = (Spinner) findViewById(R.id.spinner_InputLanguage);
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      spinner_InputLanguage.setAdapter(adapter);

    String language = (String)spinner_InputLanguage
                .getItemAtPosition((int) spinner_InputLanguage
                        .getSelectedItemId());

所以我尝试自己做,但它强制关闭

cursor = db.getLang();
    cursor.moveToFirst();
    startManagingCursor(cursor);
    SimpleCursorAdapter qc = new SimpleCursorAdapter(
            this,
            android.R.layout.simple_spinner_item,
            cursor,
            new String[] DBAdapter.KEY_LANG,
            new int[] android.R.id.text1);
        qc.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    String language = (String)Language_Spinner.getItemAtPosition((int) Language_Spinner.getSelectedItemId());
        Language_Spinner.setAdapter(qc);

这是我的日志

02-13 01:42:06.453: 错误/AndroidRuntime(703): java.lang.ClassCastException: android.database.sqlite.SQLiteCursor 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 com.android.proj.Sens_Create$2.onClick(Sens_Create.java:97) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 android.view.View.performClick(View.java:2408) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 android.view.View$PerformClick.run(View.java:8816) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 android.os.Handler.handleCallback(Handler.java:587) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 android.os.Handler.dispatchMessage(Handler.java:92) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 android.os.Looper.loop(Looper.java:123) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 java.lang.reflect.Method.invokeNative(Native Method) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 java.lang.reflect.Method.invoke(Method.java:521) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 02-13 01:42:06.453: 错误/AndroidRuntime(703): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 02-13 01:42:06.453: 错误/AndroidRuntime(703): at dalvik.system.NativeStart.main(Native Method)

请帮忙...

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,这段代码对我有用:

String item = null;
Cursor cSpinner = (Cursor)(yourSpinner.getSelectedItem());
if (cSpinner != null) 
    spinnerString = cSpinner.getString(
        cc.getColumnIndex("Last_Name"));

【讨论】:

以上是关于微调器显示数据库中的数据的主要内容,如果未能解决你的问题,请参考以下文章

Android微调器中的重复项目

如何在两个屏幕之间显示加载微调器

Android微调器没有显示Firebase实时数据库数据?

如何从微调器中检索数据并进行处理?

Honeycomb 中的片段加载微调器/对话框

Android微调器使用XML进行数据绑定并显示所选值