私の問題はこれです:私はSoapObjectを持っています。私はそれをうまく繰り返して別のネストされた要素を見つけ、それらをオブジェクトに保存しました(私は思いますか?)...
私のコードはこれです:
if(sResult != null)
{
SoapObject soapresults = (SoapObject)sResult.getProperty(0);
int count = soapresults.getPropertyCount();
ChildStatus[] children = new ChildStatus[count];
for (int i = 0; i < count; i++)
{
SoapObject kid = (SoapObject)soapresults.getProperty(i);
ChildStatus childStatus = new ChildStatus();
SoapObject value = (SoapObject)kid.getProperty("Value");
SoapObject info = (SoapObject)value.getProperty("Info");
childStatus.CheckOutPlanned = value.getPropertyAsString("CheckOutPlannedTime");
childStatus.CurrentStatus = value.getPropertyAsString("CurrentStatus");
childStatus.FullName = info.getPropertyAsString("FullName");
childStatus.ID = info.getPropertyAsString("Id");
childStatus.KindergardenID = info.getPropertyAsString("KindergardenId");
childStatus.URL = info.getPropertyAsString("ThumbnailUrl");
String pickUpBy = value.getPropertyAsString("PickUpBy");
if(pickUpBy.equalsIgnoreCase("anyType{}"))
{
System.out.println("Ja");
pickUpBy = "none";
} else if(pickUpBy.equalsIgnoreCase("En anden forælder"))
{
childStatus.PickUpWithKidID = value.getPropertyAsString("PickUpWithKidId");
childStatus.PickUpWithKidName = value.getPropertyAsString("PickUpWithKidName");
}
childStatus.PickUpBy = value.getPropertyAsString("PickUpBy");
children[i] = childStatus;
}
System.out.println("Size: " + children.length);
そして私のオブジェクトはこれです:
public class ChildStatus implements KvmSerializable
{
public String CheckOutPlanned;
public String CurrentStatus;
public String FullName;
public String ID;
public String KindergardenID;
public String URL;
public String PickUpBy;
public String PickUpWithKidID;
public String PickUpWithKidName;
public ChildStatus(){}
public ChildStatus(String checkOutPlanned, String currentStatus, String fullName, String id, String kindergardenID, String url, String pickUpBy, String pickUpWithKidID, String pickUpWithKidName)
{
CheckOutPlanned = checkOutPlanned;
CurrentStatus = currentStatus;
FullName = fullName;
ID = id;
KindergardenID = kindergardenID;
URL = url;
PickUpBy = pickUpBy;
PickUpWithKidID = pickUpWithKidID;
PickUpWithKidName = pickUpWithKidName;
}
public Object getProperty(int arg0) {
// TODO Auto-generated method stub
switch(arg0)
{
case 0:
return CheckOutPlanned;
case 1:
return CurrentStatus;
case 2:
return FullName;
case 3:
return ID;
case 4:
return KindergardenID;
case 5:
return URL;
case 6:
return PickUpBy;
case 7:
return PickUpWithKidID;
case 8:
return PickUpWithKidName;
}
return null;
}
public int getPropertyCount() {
// TODO Auto-generated method stub
return 9;
}
public void getPropertyInfo(int index, Hashtable arg1, PropertyInfo info) {
// TODO Auto-generated method stub
switch(index)
{
case 0:
info.type = PropertyInfo.STRING_CLASS;
info.name = "CheckOutPlanned";
break;
case 1:
info.type = PropertyInfo.STRING_CLASS;
info.name = "CurrentStatus";
break;
case 2:
info.type = PropertyInfo.STRING_CLASS;
info.name = "FullName";
break;
case 3:
info.type = PropertyInfo.STRING_CLASS;
info.name = "ID";
break;
case 4:
info.type = PropertyInfo.STRING_CLASS;
info.name = "KindergardenID";
break;
case 5:
info.type = PropertyInfo.STRING_CLASS;
info.name = "URL";
break;
case 6:
info.type = PropertyInfo.STRING_CLASS;
info.name = "PickUpBy";
break;
case 7:
info.type = PropertyInfo.STRING_CLASS;
info.name = "PickUpWithKidID";
break;
case 8:
info.type = PropertyInfo.STRING_CLASS;
info.name = "PickUpWithKidName";
break;
default:
break;
}
}
public void setProperty(int index, Object value) {
// TODO Auto-generated method stub
switch(index)
{
case 0:
CheckOutPlanned = value.toString();
break;
case 1:
CurrentStatus = value.toString();
break;
case 2:
FullName = value.toString();
break;
case 3:
ID = value.toString();
break;
case 4:
KindergardenID = value.toString();
break;
case 5:
URL = value.toString();
break;
case 6:
PickUpBy = value.toString();
break;
case 7:
PickUpWithKidID = value.toString();
break;
case 8:
PickUpWithKidName = value.toString();
break;
default:
break;
}
}
}
では、クラスでオブジェクトの配列を使用するにはどうすればよいですか?
私はどこかで、次のようなことをする必要があることを知りました。
ArrayList<MyClass> myList = new ArrayList<MyClass>();
myList.add( new MyClass() );
myList.get( 0 ).myMethodFromMyClass();
だから私の場合:
ArrayList<ChildStatus> myChild = new ArrayList<ChildStatus>();
myChild.add( new ChildStatus() );
myChild.get(0).??
しかし、ここでは間違った方向に進んでいる可能性があると思います。.addを使用すると、新しいオブジェクトを追加しているように聞こえ、Web呼び出しで取得したオブジェクトを取得できないためです...
iOSでは通常次のものを使用します。
Status *theStatus = [statusConnection.statusArray objectAtIndex:i];
オブジェクトの配列からオブジェクトを取得しますが、私はAndroidにかなり慣れていません...
私はあなたが私に与えることができるどんな助けでも本当に感謝します!