2013-10-07 79 views
1

我只是在sqlite表中顯示一個列表。我沒有使用任何BDHelper類。有了這個代碼,我怎麼能得到id。Android Listview onListItemClick獲取Sqlite ID

enter image description here

當我點擊第一個項目,它顯示0,其中如表它的id是1。下面是我的代碼。

SQLiteDatabase myDB; 
     try { 
      myDB = openOrCreateDatabase(DB_NAME, 
        SQLiteDatabase.CREATE_IF_NECESSARY, null);   
      myDB.execSQL("create table if not exists " + COUNTRY_TABLE 
      + "(country_id INTEGER PRIMARY KEY," 
      + "country_title text," 
      + "country_status int(11));");   

      /*myDB.execSQL("insert into " + COUNTRY_TABLE +" values "+ 
      "(null,'India',1)," + 
      "(null,'China',1)," + 
      "(null,'Australia',1)," + 
      "(null,'Japan',1)," + 
      "(null,'Germany',1)");*/ 


      Cursor c = myDB.rawQuery("select country_id,country_title from " 
        + COUNTRY_TABLE + " where country_status=1", null); 
      if (c != null) { 
       if (c.moveToFirst()) { 
        do { 
         int id = c.getInt(c.getColumnIndex("country_id")); 
         String name = c.getString(c.getColumnIndex("country_title"));      
         clist.add(id + ") " + name); 
        } while (c.moveToNext()); 
        //int itemcount = clist.size(); 
        //Toast.makeText(MainActivity.this, itemcount, Toast.LENGTH_LONG).show(); 
        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, clist)); 
       } 
      } 

     } catch (SQLiteException se) { 
      Toast.makeText(MainActivity.this, se.getMessage().toString(),Toast.LENGTH_LONG).show(); 
     } 

protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     Toast.makeText(MainActivity.this,String.valueOf(id),Toast.LENGTH_LONG).show(); 
    } 

請建議我應該做些什麼來獲得id fron表而不是位置。

回答

0

只要改變你的查詢通過ID搜索:

Cursor c = myDB.rawQuery("select country_id,country_title from " 
       + COUNTRY_TABLE + " where country_id=" + id, null); 
+0

沒有這將無法工作。當我吐司=> String.valueOf(id)時,它給出列表中的項目的位置。 – Sajal

+0

@Sajal你解決了這個問題嗎? –

+0

我用一些其他方式完成了,而不是我問的方式。 – Sajal

相關問題