我有一个记录类,它存储了一些从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 :(得分:0)
这很简单。如果您确定在第一个类中初始化值,则创建第一个类的静态对象。使用该对象,您可以访问该类的所有变量。
public static RecordClass recordObject;
recordObject = new RecirdClass();
答案 1 :(得分:0)
要在两个活动之间传输任何形式的数据,您可以使用putExtra将其传输到intent。假设您从当前活动中调用示例活动。您有一个数据ArrayList,您可以将其附加到该意图。您的记录应该是可序列化的。您可以像这样使用putExtra:
Intent mIntent = new Intent(this, Example.class);
mIntent.putExtra(String key_name, ArrayList<Record> value);
然后在您调用的Example活动中,您可以使用以下值:
ArrayList<Record> myList = (ArrayList<Record>) getIntent().getSerializableExtra(key_name);