2011-11-27 28 views
3

我真的需要你的幫助。打通「onItemClick」從SQLite數據庫到意圖數據ListView中的Android

我有經緯度數據,這裏的示例數據庫:

ID_ _ __ __ ____LAT_ __ _ ____ _long

1_ _ ___酒店一個_ __6.1234_ __ _ __ -106.12345

2_8 _ __酒店兩大_ ___6.54321_ __ _ _ -107.23456

3_ _ _酒店Three_ __7.12345_ __ _ _ -106.98765

Android上的ListView中的數據顯示。我用onItemClick,所以,如果我點擊ListView中的項目之一,它會去

Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&saddr=&daddr="+lat_var+","+long_var))

但是,如果我在ListView中點擊一個項目的lat_var數據和long_var的意圖上面的問題是不會給我lat和長數據從我的數據庫......

這裏我的代碼,你可以編輯它,所以如果我點擊ListView中的項目之一,它會給我從lat和長數據我數據庫。例如,如果我點擊酒店兩個lat_var將變更爲6.54321和long_var將變爲-107.23456上的意圖。

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      SQLiteDatabase dbs = dbHotelHelper.getReadableDatabase(); 

      String get_lat = "SELECT lat FROM hoteltbl"; 
      Cursor result_lat = dbs.rawQuery(get_lat, null); 
      double lat_var = result_lat.getColumnIndex("lat"); 
      String get_long = "SELECT lat FROM hoteltbl"; 
      Cursor result_long = dbs.rawQuery(get_long, null); 
      double long_var = result_long.getColumnIndex("long"); 

      Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?f=d&saddr=&daddr="+lat_var+","+long_var)); 
      startActivity(intent); 

     } 

我不知道這個問題是我的語法還是什麼。請修復我的代碼。我真的很感謝的人誰回答這個...

回答

4

首先,只有一個查詢是必要的。無需查詢您的表兩次。 其次,你需要與你的選擇參數,以適應您的查詢:

@Override 
protected void onListItemClick(ListView listView, View view, int position, long id) {id) {  
    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 long = result.getDouble(result.getColumnIndex("long")); 

    .... 

這個代碼寫在StackOverflow的編輯器,它可能無法爲這樣的工作,但會給你一個想法。

(另外,不添加後綴「_var」,或「_long」你的變量,它沒有必要像Java的強類型語言)

+0

THX的答案,我只是用它。但是如何使用getListAdapter()方法。在我的情況下,你可以提供代碼? – forgiven24

相關問題