我不認爲我一直這樣做是正確的。一個好友告訴我使用cursor.getColumnIndex()來檢索該表列中項目的值。在我看來,它只是返回表格中列的位置的int值,這就是爲什麼當我執行下面的代碼時,我得到了2.0或3.0的我的經緯度值,因爲它們是第二和第三列桌子。使用光標檢索SQLite db
什麼是這種方法返回在長長的列中的項目,而不是他們在表中的位置正確的方法是什麼?
下面是我用用getColumnIndex()什麼:
public List<LatLng> getAllPositions() {
List<LatLng> positionList = new ArrayList<LatLng>();
SQLiteDatabase database;
ResumeMySQLiteHelper dbHelper;
dbHelper = new ResumeMySQLiteHelper(this);
database = dbHelper.getWritableDatabase();
String[] allColumns = { ResumeMySQLiteHelper.COLUMN_ID,
ResumeMySQLiteHelper.COLUMN_COMMENT, ResumeMySQLiteHelper.COLUMN_LAT, ResumeMySQLiteHelper.COLUMN_LONG };
Cursor cursor = database.query(ResumeMySQLiteHelper.TABLE_NAME,
allColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
double latitude = cursor.getColumnIndex("lat");
double longitude = cursor.getColumnIndex("long");
String testString = Double.toString(latitude);
String testLong = Double.toString(longitude);
Log.w("myApp", testString + " " + testLong);
//currently prints myApp 2.0 3.0 for every row in table
LatLng newLatLng = new LatLng(latitude, longitude);
positionList.add(newLatLng);
cursor.moveToNext();
}
// make sure to close the cursor
cursor.close();
return positionList;
}
是的,你得到那一個:D – MDMalik
我剛纔讀了幾分鐘之前你的問題。或者你會回答相同的問題。 ;) –
@ArtooDetoo很好很棒! +1 up –