for*_*n24 1 sqlite android listview listadapter onitemclicklistener
我想从sqlite数据库中获取纬度和经度数据.
所以我使用下面的代码,但是有一个问题getListAdapter().它说我必须创造' getListAdapter()'方法.我在网上搜索,但没有getListAdapter()方法的例子.
你能修复我的代码吗?因此,如果我单击该项目,它将从我的数据库中提供lat和long数据.
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//TODO Auto-generated method stub
String selectedItem = (String) getListAdapter().getItem(position);
String query = "SELECT lat, long FROM hoteltbl WHERE name = '" + selectedItem + "'";
SQLiteDatabase dbs = dbHotelHelper.getReadableDatabase();
Cursor result = dbs.rawQuery(query, null);
result.moveToFirst();
double lat = result.getDouble(result.getColumnIndex("lat"));
double longi = result.getDouble(result.getColumnIndex("long"));
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&saddr=&daddr="+lat+","+longi));
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这是我之前的问题中的问题
您不需要扩展ListActivity.您只需要找到listview并调用其getAdapter()方法.
这是您更新的代码.
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//TODO Auto-generated method stub
ListView lv = (ListView) findViewById(R.id.YOURLISTVIEW);
String selectedItem = (String) lv.getAdapter().getItem(position);
String query = "SELECT lat, long FROM hoteltbl WHERE name = '" + selectedItem + "'";
SQLiteDatabase dbs = dbHotelHelper.getReadableDatabase();
Cursor result = dbs.rawQuery(query, null);
result.moveToFirst();
double lat = result.getDouble(result.getColumnIndex("lat"));
double longi = result.getDouble(result.getColumnIndex("long"));
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&saddr=&daddr="+lat+","+longi));
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5086 次 |
| 最近记录: |