2017-02-15 38 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);