public void DatabaseConn() {
DataBaseHelper myDbHelper = new DataBaseHelper(this.getApplicationContext());
myDbHelper = new DataBaseHelper(this);
try {
myDbHelper.createDataBase();
} catch (IOException ioe) {
throw new Error("Unable to create database");
}
try {
myDbHelper.openDataBase();
}catch(SQLException sqle){
throw sqle;
}
SQLiteDatabase db = myDbHelper.getReadableDatabase();
//SQLiteDatabase db = SQLiteDatabase.openDatabase("/data/data/com.example.abc2/databases/DB_BusData", null, 0);
Cursor c = db.rawQuery("SELECT * FROM Tbl_Driver", null);
startManagingCursor(c);
//create an array to specify which fields we want to display
String[] from = new String[]{"Driver_Name"};
//create an array of the display item we want to bind our data to
int[] to = new int[]{android.R.id.text1};
//create simple cursor adapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, from, to );
adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );
//get reference to our spinner
Spinner s = (Spinner) findViewById( R.id.DriverSpin);
s.setAdapter(adapter);
db.close();
}
这可能是没有_id
列的Bind Spinner吗?任何想法?
编辑:除SimpleCursorAdapter
以外,其他任何适配器都可以执行此操作吗?我的意思是没有_id
列
答案 0 :(得分:0)
来自您CursorAdapter
的超级SimpleCursorAdapter
的{{3}}:
Cursor必须包含名为“_id”的列,否则此类将无效。
所以,没有。
编辑:
实际上,有一种方法可以解决这个问题。如果您仔细阅读,它会说 Cursor 必须有一个名为_id
的列,我们可以通过将您的查询字符串更改为:
"SELECT ROWID AS _id, someColumn, anotherColumn FROM Tbl_Driver"
您必须手动输入所需的所有列,因为执行ROWID AS _id
将无法与使用通配符*
同时工作。