How to get value of getter setter method in android?

flix :

I have read many question on here, but still i don't find any right answer of my case right now

so I have a code like this

VisitReport.java

public class VisitReport{
  public static final String TABLE_NAME = "VisitReport";

  public static final String COLUMN_ID = "ID";
  public static final String COLUMN_VisitPurpose = "VisitPurpose";
  public static final String COLUMN_VisitResult = "VIsitResult";

  private int id;
  private String VisitPurpose;
  private String VisitResult;

  public static final String CREATE_TABLE =
      "CREATE TABLE " + TABLE_NAME + "("
          + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
          + COLUMN_VisitPurpose + " TEXT,"
          + COLUMN_VisitResult + " TEXT,"
          + ")";

  public VisitReport() {
  }

  public VisitReport(
    int id,
    String VisitPurpose,
    String VisitResult
  ){
    this.id = id;
    this.VisitPurpose = VisitPurpose;
    this.VisitResult = VisitResult;
  }

  public int getId() { return id; }
  public void setId(int id) { this.id = id; }
  public String getVisitPurpose() { return VisitPurpose; }
  public void setVisitPurpose(String VisitPurpose) { this.VisitPurpose = VisitPurpose;}
  public String getVisitResult() { return VisitResult; }
  public void setVisitResult(String VisitResult) { this.VisitResult = VisitResult;}
}

DatabaseHelper.java (piece of code Im used)

  public VisitReport getVisitReport(long id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(VisitReport.TABLE_NAME,
        new String[]{
          VisitReport.COLUMN_ID,
          VisitReport.COLUMN_VisitPurpose,
          VisitReport.COLUMN_VisitResult,
        },
        VisitReport.COLUMN_ID + "=?",
        new String[]{String.valueOf(id)}, null, null, null, null);

    if (cursor != null){
      cursor.moveToFirst();
    }
    VisitReport vr = new VisitReport(
      cursor.getInt(cursor.getColumnIndex(VisitReport.COLUMN_ID)),
      cursor.getString(cursor.getColumnIndex(VisitReport.COLUMN_VisitPurpose)),
      cursor.getString(cursor.getColumnIndex(VisitReport.COLUMN_VisitResult))
    cursor.close();
    return vr;
  }

I want pass the value to react native using bridge module, but I get an error

Cannot convert argument of type class mypackage.VisitReport

here's the code I've tried :

@ReactMethod
public void getVisitReport(int id, Callback cb) {
  DatabaseHelper db = new DatabaseHelper(reactContext);
  cb.invoke(db.getVisitReport(id));
}

Find this question as my reference still I don't get what's the meaning of those because when i log the value of getVisitReport() i got mypackage.VisitReport@12d960c9 and i don't know the meaning of this

am i doing something wrong? anyone can help me how to make it work?

valegian :

You can access each value individually by doing

db.getVisitReport(id).getVisitPurpose

Or

VisitReport vr = db.getVisitReport(id); vr.getVisitPurpose

That is because getVisitReport() returns an object. An object is an instance of a class that holds a set of variables.

When you do getVisitReport(id).toString() you are doing a returning a string representation of the object itself, not its values.

If you want to get all the object's attributes at the same time you need to create a new method inside VisitReport which returns all of the attributes in, for example, an array of objects (since all objects in Java extend Object, see How to declare an array of different data types).

Please make sure you read more about java and objects. Here is a good link: https://www.tutorialspoint.com/java/java_object_classes.htm

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=153285&siteId=1