Если адаптер уже заполнен с помощью курсора, вы должны воздерживаться от получения данных с помощью курсора, подаваемого на адаптер. Вместо этого используйте getItem(int position)
, который должен вернуть курсор, который уже указывает на правильный элемент в вашем списке. Ваш код будет выглядеть так:
lv.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
//retrieve database values
Cursor tempCursor = getItem(position);
Toast.makeText(getApplicationContext(), tempCursor.getString(tempCursor.getColumnIndex(DBAdapter.KEY_STATIONURL)), Toast.LENGTH_SHORT).show();
}
});
Вы можете пойти еще дальше и переопределить getItem(position)
вашего CursorAdapter, чтобы он возвращал объект Data
*, в котором вам просто нужно getKeyStationUrl()
*, чтобы получить нужное значение.