2012-01-31 100 views
0

我真的不知道这个交易是什么。它应该很简单,但由于某种原因,我的微调没有填充任何数据。微调+光标问题

final String fields[] = { "siteName","_id" }; 
    int[] to = new int[] { android.R.id.text1 }; 

    DatabaseHelper helper = new DatabaseHelper(this); 
    database = helper.getReadableDatabase(); 
    Cursor ftpCursor = database.query("ftptable", fields, null, null, null, null, null); 
    startManagingCursor(ftpCursor); 

    Log.i("tag", "getcount result:"+ftpCursor.getCount()); 

    SimpleCursorAdapter dataSource = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, ftpCursor, fields, to); 
    dataSource.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    s = (Spinner) findViewById(R.id.upload_screen_spinner); 
    s.setAdapter(dataSource); 

Log行在游标上返回4的getCount(),所以我知道游标中有数据。当微调打开时,根本没有数据。我认为它一定是愚蠢的,但我看不到它。

+0

有没有可能是你有4条空字符串的,你不会看到任何东西如果它真的发生。 .. – emalamisura 2012-01-31 21:17:48

+0

不,这些记录是在应用程序的其他地方检索到的,它们不是空的。 – Carnivoris 2012-01-31 21:27:41

+0

然后有可能是其中的数据,但您的项目布局没有显示任何内容... – emalamisura 2012-01-31 21:37:03

回答

0

阵列有两个值,而你的阵列有一个字段。尝试删除“_id”并查看它是否有效。

+0

cursoradapter需要_id字段。无论如何,我已经知道这不是问题。在应用程序的另一部分中,我也有类似的字段/ to cursoradapter,它们执行相同的操作。单个字段只是默认为from数组中的第一列。 – Carnivoris 2012-01-31 21:25:00

1

我终于搞定了。我认为催化修复是在SimpleCursorAdapter改变布局android.R.layout.simple_spinner_dropdown_item

final String from[] = { "siteName","_id" }; 
int[] to = new int[] { android.R.id.text1 }; 

DatabaseHelper helper = new DatabaseHelper(this); 
database = helper.getWritableDatabase(); 
Cursor ftpCursor = database.query("ftptable", from, null, null, null, null, null); 

SimpleCursorAdapter dataSource = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_dropdown_item, ftpCursor, from, to); 

ftpCursor.moveToFirst(); 
database.close(); 


Spinner s = (Spinner) findViewById(R.id.upload_screen_spinner); 
s.setAdapter(dataSource);