2017-02-15 43 views
-1

我有一个记录类,用于存储通过API调用获取的一些数据。 这是我的记录类。在活动上使用其他班级数据

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()函数和其他函数,但是我得到的值为零。 预先感谢那些愿意帮助解决我的问题的人。

回答

0

它非常简单。如果您确定这些值是在第一个类中初始化的,则创建第一个类的静态对象。通过该对象,您可以访问该类的所有变量。

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

如果这样做,请让我知道并接受答案。

0

要在两个活动之间传输任何形式的数据,您可以使用putExtra将其转移到意图。假设您正在从当前活动中调用示例活动。你有一个数据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); 
相关问题