-4

I have 20 records in SQlite database.
When I call GetOfflineRecords() method it get only last record 20 times.
I wish to get all records. But it gets last record 20 times.

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));
    }
Community
  • 1
  • 1

1 Answers1

0

Before implement once check length of cursor if that ok then debug cursor loop and check every time(each index) you getting proper record from query.

If all ok then go with below code snippet.

because issue may be fetching record from cursor.

Once check with below code:

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

    }

If still not work then direct use column index

  markerListResult.setId(cursorFinal.getString(0));
ViramP
  • 1,659
  • 11
  • 11