1

我想从 sqlite 数据库中获取经纬度数据。

所以我在下面使用这段代码,但是getListAdapter(). 它说我必须创建' getListAdapter()'方法。我在网上搜索,但没有getListAdapter()方法的例子。

你能修复我的代码吗?因此,如果我单击该项目,它将为我提供数据库中的经纬度数据。

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);

}

顺便说一句,这是我上一个问题的问题

4

2 回答 2

6

您不需要扩展 ListActivity。您只需要找到列表视图并调用它的 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);

}
于 2011-11-27T19:49:54.527 回答
0

Your activity should extends ListActivity to have getListAdapter method. Take a look at this tutorial.

If you want to get item, you should use getItem(position) method from adapter which was set to ListView

于 2011-11-27T14:58:28.187 回答