从简单的游标适配器填充微调器

时间:2017-07-02 20:19:28

标签: android sqlite spinner simplecursoradapter

使用简单的游标适配器从sqlite数据库填充spinner时遇到一些麻烦。我必须使用简单的游标适配器而不是数组适配我的MainActivity,函数和xml文件如下:

  public class MainActivity extends BaseActivity {


    private Spinner workerId = (Spinner) findViewById(R.id.spinner);

    c = getCursor();

    String[] columns = new String[]{Database.mylist};
    int[] to = new int[] { R.id.spinner };
    myAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, columns,to, 0);
    workerId.setAdapter(myAdapter);

    ..............
    ..............
    }

功能如下:

    public Cursor getCursor() {
    Cursor c = database.rawQuery("select * from " + Database.mylist + " where isCancel = 0", null);
    return c;
}

Xml文件在下面;

        MainActivity.xml


    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="5dp"
        android:layout_height="wrap_content" />

当我运行app时,会显示以下屏幕。有数据,但似乎是空的。我有_id,列名。

empty spinner

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

更改

int[] to = new int[] { R.id.spinner };

int[] to = new int[] { android.R.id.text1 };

您可以在此处阅读有关SimpleCursorAdapter的更多信息:Android: Using SimpleCursorAdapter to get Data from Database to ListView

此外,您正在使用Database.mylist作为列名和表名,如PPartisan在评论中指出的那样。