如何在安卓中获取吸气器方法的值



我在这里读了很多问题,但我现在仍然找不到任何正确的答案

所以我有这样的代码

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(我使用的代码段)

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

我想使用 bridge module 将值传递给react native,但出现错误

Cannot convert argument of type class mypackage.VisitReport

这是我尝试过的代码:

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

找到这个问题作为我的参考,我仍然不明白这些是什么意思,因为当我记录getVisitReport()的值时,我得到了mypackage.VisitReport@12d960c9,我不知道这个的含义

做错了什么吗?任何人都可以帮助我如何使其工作?

您可以通过执行以下操作单独访问每个值

db.getVisitReport(id).getVisitPurpose

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

这是因为getVisitReport()返回一个对象。对象是包含一组变量的类的实例。

当你这样做getVisitReport(id).toString()你正在返回对象本身的字符串表示形式而不是它的值。

如果要同时获取对象的所有属性,则需要在VisitReport中创建一个新方法,该方法返回对象数组中的所有属性(因为 Java 中的所有对象都扩展了 Object,请参阅如何声明不同数据类型的数组)。

请确保您阅读了有关 java 和对象的更多信息。这是一个很好的链接:https://www.tutorialspoint.com/java/java_object_classes.htm

猜测如下

内容可能会起作用:-

VisitReport vr = db.getVisitorReport(id);
cb.invoke("ID=" +String.valueOfvr.getid()) + ", Purporse=" + vr.getVisitPurpose"); // etc 
  • 这假定调用可以接受字符串。

相关内容

  • 没有找到相关文章

最新更新