私の石鹸の応答は次のようになります。
<return>
<allergies>
<description>Allergy on Skynet</description>
</allergies>
<allergies>
<description>Allergy 2</description>
</allergies>
<allergies>
<description>Allergy 3</description>
</allergies>
<dateOfBirth>1989-02-28T00:00:00Z</dateOfBirth>
<diagnosys>Something bad</diagnosys>
<firstName>Sara</firstName>
<gender>Female</gender>
<id>2</id>
<lastName>Conor</lastName>
<medicationList>
<description>Medication 1</description>
<dossage>34ml</dossage>
<id>4</id>
<medicationTimes>
<from>1970-01-01T00:00:00Z</from>
<to>1970-01-01T00:30:00Z</to>
</medicationTimes>
<medicationTimes>
<from>1970-01-01T01:00:00Z</from>
<to>1970-01-01T02:00:00Z</to>
</medicationTimes>
<otherInfo>Something</otherInfo>
<strength>strong</strength>
</medicationList>
<medicationList>
<description>Medication 2</description>
<dossage>10 ml</dossage>
<id>5</id>
<medicationTimes>
<from>1970-01-01T20:15:00Z</from>
<to>1970-01-01T22:30:00Z</to>
</medicationTimes>
<otherInfo>bla bla bla</otherInfo>
<strength>very strong</strength>
</medicationList>
<medicationList>
<description>Aspirin</description>
<dossage>34ml</dossage>
<id>6</id>
<otherInfo>bla bla bla</otherInfo>
<strength>very strong</strength>
</medicationList>
</return>
すべてを繰り返してリストを作成する必要があります。これを行うには、次のことを行っています。
SoapObject response = (SoapObject) envelope.bodyIn;
object = (SoapObject)response.getProperty("return");
details.setFirstName(object.getProperty("firstName").toString());
details.setLastName(object.getProperty("lastName").toString());
ArrayList<PatientMedicine> medicineList=new ArrayList<PatientMedicine>();
PatientMedicine medicine=new PatientMedicine();
SoapObject oMedicationList=(SoapObject) object.getPropertySafely("medicationList");
// SoapObject oMedicationTime=(SoapObject)oMedicationList.getPropertySafely("medicationTimes");
if(oMedicationList!=null){
for(int k=0;k<oMedicationList.getPropertyCount();k++){
//SoapObject test=(SoapObject)oMedicationList.getProperty(k); //I can not do this..this gives error.
SoapObject oMedicationTime=(SoapObject)oMedicationList.getProperty("medicationTimes");
medicine.setDescription(oMedicationList.getPrimitivePropertySafelyAsString("description"));
medicine.setDossage(oMedicationList.getPrimitivePropertySafelyAsString("dossage"));
medicine.setStrength(oMedicationList.getPrimitivePropertySafelyAsString("strength"));
medicineList.add(medicine);
}
details.setMedicineList(medicineList);
問題は、上記のコードから、最初のオブジェクトを n 回しか取得できないことです。すべてのアイテムではありません。
私はどこで間違っていますか?誰かが私を助けることができれば素晴らしいでしょう。