2016-08-09 95 views
-4

Ich habe 20 Datensätze in der SQlite-Datenbank.
Wenn ich GetOfflineRecords() -Methode aufrufen, erhalten Sie nur den letzten Datensatz 20 Mal.
Ich möchte alle Datensätze erhalten. Aber es wird zuletzt 20 Mal Rekord.SQLite bekomme nur den letzten Datensatz anstelle aller Datensätze

This link is use to get last row. I wish to get All rows

public void GetOfflineRecords() { 

     Log.d("Offline :", "Offline Data Retrive"); 

     String selectQueryFinal = "SELECT * FROM " + AppDatabase.TABLE_MARKER_LIST; 

     Log.d("SelectQuerry", selectQueryFinal); 
     final Cursor cursorFinal = db.rawQuery(selectQueryFinal, null); 
     Log.d("CurCount-Offline", cursorFinal.getCount() + " -crCountOffline"); 

     if (cursorFinal != null && cursorFinal.getCount() != 0) { 
      if (cursorFinal.moveToFirst()) { 
       do { 
        markerListResult = new Bean_Marker(); 
        markerListResult.setId(cursorFinal.getString(cursorFinal.getColumnIndex("id"))); 
        markerListResult.setPlace_name(cursorFinal.getString(cursorFinal.getColumnIndex("place_name"))); 
        markerListResult.setLatitude(cursorFinal.getString(cursorFinal.getColumnIndex("latitude"))); 
        markerListResult.setLongitude(cursorFinal.getString(cursorFinal.getColumnIndex("longitude"))); 
        markerListResult.setShort_description(cursorFinal.getString(cursorFinal.getColumnIndex("short_desctiption"))); 

        Log.e("ID : ", cursorFinal.getString(cursorFinal.getColumnIndex("id"))); 
        Log.e("Place Name : ", cursorFinal.getString(cursorFinal.getColumnIndex("place_name"))); 
        markerList.add(markerListResult); 
       } while (cursorFinal.moveToNext()); 

      } 

     } else { // No Records are there 
      Log.e("Cursor", "Cursor is empty"); 
      //dialogMessage.SingleButtonDialog(OfflineMap.this, "No Data Alert", "You have no offline data found"); 
     } 

     //listSurvey.setAdapter(new AdapterSurveyList(SurveyList.this, survey_listList, callClickListener, cameraClickListener)); 
    } 
+0

Ich wette, dass Sie etwas Dummes wie mit 'markerListResult' in' Adapter.getView tun ' – Selvin

+0

Der Code scheint in Ordnung zu sein – kgandroid

+0

Mögliche Duplikat von [Holen der letzten Zeile aus SQLite-Datenbank] (http://StackOverflow.com/Questions/17667043/Fetching-Last-row-from-Sqlite-Datenbank) – YUVRAJ

Antwort

0

Vor einmal überprüfen Länge Cursor implementieren, wenn das ok dann Debug-Cursor-Schleife und prüfen Sie jedes Mal (jeder Index) Sie richtigen Datensatz aus Anfrage gegeben werden.

Wenn alles ok dann gehen Sie mit unten Code-Snippet.

weil Problem möglicherweise Datensatz vom Cursor abrufen.

Einmal mit folgendem Code überprüfen:

public void GetOfflineRecords() { 

     String selectQueryFinal = "SELECT * FROM " + AppDatabase.TABLE_MARKER_LIST; 

     Log.d("SelectQuerry", selectQueryFinal); 
     final Cursor cursorFinal = db.rawQuery(selectQueryFinal, null); 
     Log.d("CurCount-Offline", cursorFinal.getCount() + " -crCountOffline");//Check length over here 

     ArrayList<Bean_Marker> markerList = new ArrayList<>(); 
     if (cursorFinal != null && cursorFinal.getCount() != 0) { 
      if (cursorFinal.moveToFirst()) { 
       do { 
        markerListResult = new Bean_Marker(); 
        markerListResult.setId(cursorFinal.getString(cursorFinal.getColumnIndex("id"))); 
        markerListResult.setPlace_name(cursorFinal.getString(cursorFinal.getColumnIndex("place_name"))); 
        markerListResult.setLatitude(cursorFinal.getString(cursorFinal.getColumnIndex("latitude"))); 
        markerListResult.setLongitude(cursorFinal.getString(cursorFinal.getColumnIndex("longitude"))); 
        markerListResult.setShort_description(cursorFinal.getString(cursorFinal.getColumnIndex("short_desctiption"))); 

        Log.e("ID : ", cursorFinal.getString(cursorFinal.getColumnIndex("id"))); 
        Log.e("Place Name : ", cursorFinal.getString(cursorFinal.getColumnIndex("place_name"))); 
        markerList.add(markerListResult); 
       } while (cursorFinal.moveToNext()); 

      } 

     } else { // No Records are there 
      Log.e("Cursor", "Cursor is empty"); 

     } 
     Log.e("Cursor", "markerList length"+markerList.size()); 
////Check length over here 

    } 

Wenn immer noch nicht dann die direkten Verwendung Spaltenindex

markerListResult.setId(cursorFinal.getString(0)); 
+0

markerListResult.setId (cursorFinal.getString (0)) funktioniert nicht. Gleiche Ausgabe –

+0

Können Sie einmal das Protokoll cursorFinal.getString (0) erstellen und jedes Mal überprüfen, ob Sie ein anderes Ergebnis erhalten? – ViramP