2017-07-02 137 views
0

我有一些麻煩,使用簡單的光標適配器從sqlite數據庫填充微調器。我必須使用簡單的遊標適配器而非陣列適配器是我的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" /> 

而當我運行應用程序時,顯示以下屏幕。有數據但似乎是空的。我有_id,名字欄。

empty spinner

謝謝您的幫助。

+1

「Database.myList」指向表的名稱還是列的名稱?因爲你將它用作兩者。你是否檢查過你的'getCursor()'方法是否返回任何行的'Cursor'? – PPartisan

回答

0

變化

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在評論中指出的那樣。

+0

String [] columns = new String [] {Database.mylist};將是String [] columns = new String [] {Database.col_name};我確實寫錯了。但它並沒有解決問題。 – Worker

+0

謝謝約瑟夫。現在它工作。 – Worker

相關問題