2013-10-07 2 views
1

Je suis simplement affichant une liste de la table sqlite. Je n'ai utilisé aucune classe BDHelper. Avec ce code seulement comment puis-je obtenir id.Android Listview onListItemClick obtenir Sqlite Id

enter image description here

Lorsque je clique sur le 1er article, il montre 0 où, comme dans le tableau, il est id est 1. Ci-dessous mon code.

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

Veuillez suggérer ce que je devrais faire pour obtenir la table d'identification et non la position.

Répondre

0

il suffit de changer votre requête de recherche par ID:

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

pas cela ne fonctionnera pas. quand je grille => String.valueOf (id), il donne la position de l'item dans la liste. – Sajal

+0

@Sajal avez-vous résolu cela? –

+0

Je l'ai fait avec un autre moyen pas la façon dont j'ai demandé. – Sajal

Questions connexes