2

Im using the following code to add values to db.

public void addComplianceAcceptability(ComplianceAcceptability complianceAcceptability) {
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
    ContentValues contentValues = new ContentValues();

    contentValues.put(KEY_ID, complianceAcceptability.getId());
    contentValues.put(KEY_COUNTRY_ID, complianceAcceptability.getCountryId());
    contentValues.put(KEY_DOMAIN_ID, complianceAcceptability.getDomainId());
    contentValues.put(KEY_UNIT_ID, complianceAcceptability.getUnitId());
    contentValues.put(KEY_COMPLIANCE_ID, complianceAcceptability.getComplianceId());
    contentValues.put(KEY_COMPLIANCE_NAME, complianceAcceptability.getCompliancenName());
    contentValues.put(KEY_COMPLIANCE_FREQUENCY, complianceAcceptability.getComplianceFrequency());
    contentValues.put(KEY_COMPLIANCE_APPLICABLE, complianceAcceptability.getComplianceApplicable());
    contentValues.put(KEY_COMPLIANCE_OPTED, complianceAcceptability.getComplianceOpted());

    sqLiteDatabase.insert(TABLE_COMPLIANCE_ACCEPTABILITY, null, contentValues);
    sqLiteDatabase.close();
}

Imm trying to access the values using the following code,

public List<ComplianceAcceptability> getAllAcceptability() {

        List<ComplianceAcceptability> complianceAcceptabilityList = new ArrayList<>();

        String selectQuery = "SELECT * FROM " + TABLE_COMPLIANCE_ACCEPTABILITY;

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);

        if (cursor.moveToFirst()) {
            do {
                ComplianceAcceptability complianceAcceptability = new ComplianceAcceptability();

                complianceAcceptability.setId(Integer.parseInt(cursor.getString(0)));
                complianceAcceptability.setCountryId(cursor.getString(1));
                complianceAcceptability.setDomainId(cursor.getString(2));
                complianceAcceptability.setUnitId(cursor.getString(3));
                complianceAcceptability.setComplianceId(cursor.getString(4));
                complianceAcceptability.setCompliancenName(cursor.getString(5));
                complianceAcceptability.setComplianceFrequency(cursor.getString(6));
                complianceAcceptability.setComplianceApplicable(cursor.getString(7));
                complianceAcceptability.setComplianceOpted(cursor.getString(8));

            } while (cursor.moveToNext());
        }

        return complianceAcceptabilityList;
    }

The problem is that it returns an empty array. But when I try to print the contentValues within addComplianceStatus, it of course prints the array of all values.

2
  • 1
    You forgot to add it to the list :D Commented Mar 5, 2016 at 15:45
  • hahahaha yes! thank you Commented Mar 7, 2016 at 4:53

2 Answers 2

2

You never add anything to complianceAcceptabilityList. You just assign it once, then do nothing to it before returning it. Maybe you want to add complianceAcceptability into it at each iteration through the cursor?

Sign up to request clarification or add additional context in comments.

2 Comments

i have added it to the list by now and now it prints the memory address and not the values
You need to implement a toString method on your object to if you want it to print something other than the default you're seeing now.
1

Here you are not adding the complianceAcceptability object to the complianceAcceptabilityList, your modified code:

if (cursor.moveToFirst()) {
        do {
            ComplianceAcceptability complianceAcceptability = new ComplianceAcceptability();

            complianceAcceptability.setId(Integer.parseInt(cursor.getString(0)));
            complianceAcceptability.setCountryId(cursor.getString(1));
            complianceAcceptability.setDomainId(cursor.getString(2));
            complianceAcceptability.setUnitId(cursor.getString(3));
            complianceAcceptability.setComplianceId(cursor.getString(4));
            complianceAcceptability.setCompliancenName(cursor.getString(5));
            complianceAcceptability.setComplianceFrequency(cursor.getString(6));
            complianceAcceptability.setComplianceApplicable(cursor.getString(7));
            complianceAcceptability.setComplianceOpted(cursor.getString(8));
         complianceAcceptabilityList.add(complianceAcceptability);          

        } while (cursor.moveToNext());
    }

1 Comment

now it prints some memory address rather than the values

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.