【问题标题】:Use another class data on an activity在活动上使用另一个类数据
【发布时间】:2017-02-15 15:12:38
【问题描述】:

我有一个记录类,它存储了从 API 调用中获得的一些数据。 这是我的 Record 课程。

public class Record {
private int id;
private int measure_id;
private double weight;
private double bmi;
private int diastolic;
private int systolic;
private int temperature;
private int heartRate;
private String date;
private int user_id;

public Record() {
    this.measure_id = 0;
    this.heartRate = 0;
    this.weight = 0;
    this.diastolic = 0;
    this.systolic = 0;
    this.temperature = 0;
    this.date = "0";
    this.bmi = 0;
}

public int getId() {
    return id;
}

public void setMeasure_id(int measure_id) {
    this.measure_id = measure_id;
}

public int getMeasure_id() {
    return measure_id;
}

public double getWeight() {
    return weight;
}

public void setWeight(double weight) {
    this.weight = weight;
}

public int getTemperature(){
    return temperature;
}

public void setTemperature(int temperature){
    this.temperature = temperature;
}

public int getHeartRate(){
    return heartRate;
}

public void setHeartRate(int heartRate){
    this.heartRate = heartRate;
}

public int getDiastolic(){
    return diastolic;
}

public void setDiastolic(int diastolic){
    this.diastolic = diastolic;
}

public int getSystolic(){
    return systolic;
}

public void setSystolic(int systolic){
    this.systolic = systolic;
}

public double getBmi() {
    return bmi;
}

public void setBmi(double bmi) {
    this.bmi = bmi;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}
}

这是我的 API 调用类。我只展示重要的部分。此类用于从 Withings 服务器获取数据。即体温、血压和心率。我能够获取 json 文件和所有数据。

private ArrayList convertData(String withings_records)
{
    ArrayList<Record> records = new ArrayList<Record>();
    List<MeasureGroup> withings_measures = new ArrayList<>();
    String record_test = "";

    try {

        JsonObject jsonObject = new JsonParser().parse(withings_records).getAsJsonObject();

        int status = jsonObject.get("status").getAsInt(); 

        if (status == 0) {
            JsonElement body = jsonObject.get("body");
            withings_measures = gson.fromJson(body.getAsJsonObject(),
                    MeasureResult.class).measureGroups; 
        }

        for(MeasureGroup measure : withings_measures) 
        {
            Record record = new Record();

            record.setDate(Integer.toString(measure.date));

            for(Measure item : measure.measures) 
            {
                record.setMeasure_id(measure.groupId);

                if(item.type == MeasureType.DIASTOLIC_BLOOD_PRESSURE)
                {
                    record.setDiastolic(item.getValue());
                }
                if(item.type == MeasureType.HEART_PULSE)
                {
                    record.setHeartRate(item.getValue());
                }

                if(item.type == MeasureType.BODY_TEMPERATURE)
                {
                    record.setTemperature(item.getValue());
                }

            }
            records.add(0,record);

        }
    } catch (Exception ex) {
    }

    return records;
}

很遗憾,我无法在另一个活动类中使用该记录。我得到的值是零。我在想也许我得到了构造函数的值并且不知道如何在另一个活动中重用数据。我尝试使用意图,但这是不可能的。在我的主要活动中,我尝试使用record.getTemperature() 函数和其他函数,但我得到的值为零。 提前感谢那些愿意帮助我解决问题的人。

【问题讨论】:

    标签: java android api withings


    【解决方案1】:

    要在两个 Activity 之间传输任何形式的数据,您可以使用 putExtra 将其传输到 Intent。假设您正在从当前活动中调用示例活动。您有一个可以附加到该意图的数据 ArrayList。您的记录应该是可序列化的。您可以像这样使用 putExtra:

    Intent mIntent = new Intent(this, Example.class);
    mIntent.putExtra(String key_name, ArrayList<Record> value);
    

    然后在您调用的示例活动中,您可以使用该值,如下所示:

    ArrayList<Record> myList = (ArrayList<Record>) getIntent().getSerializableExtra(key_name);
    

    【讨论】:

      【解决方案2】:

      这很简单。如果您确定值是在第一类中初始化的,则创建第一类的静态对象。使用该对象,您可以访问该类的所有变量。

      public static RecordClass recordObject;
      recordObject = new RecirdClass();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-13
        • 1970-01-01
        相关资源
        最近更新 更多