kSoap2-Android — Cast Klasse Exception (SoapObject)
Ich versuche momentan, um ein array von meinem webservice über die Standard-Ksoap Umsetzung. Jedoch, wenn Sie versuchen, Zugriff auf dieses array, erhalte ich folgende logcat Fehler:
04-27 00:27:01.772: ERROR/AndroidRuntime(530): Caused by: java.lang.RuntimeException: Unable to
start activity ComponentInfo{android.waiter/android.waiter.TablesActivity}:
java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive
Es scheint, dass aus irgendeinem Grund die Seife ist nicht immer zusammen mit der Art, wie ich bin casting-mein Eigentum Werte. Befestigt ist das problem-code (und Verwandte Methoden)
public static TableDTO[] RetrieveFromSoap(SoapObject soap)
{
TableDTO[] tables = new TableDTO[soap.getPropertyCount()];
for (int i = 0; i < tables.length-1; i++) {
SoapObject pii = (SoapObject) soap.getProperty(i);
TableDTO table = new TableDTO();
table.setTableID(Integer.parseInt(pii.getProperty(0).toString()));
table.setCapacity(Integer.parseInt(pii.getProperty(1).toString()));
table.setStatusFlag(pii.getProperty(2).toString());
table.setCurrentWaiter(pii.getProperty(3).toString());
tables[i] = table;
}
return tables;
}
TableDTO Informationen:
@Override
public Object getProperty(int arg0) {
switch(arg0)
{
case 0:
return TableID;
case 1:
return Capacity;
case 2:
return StatusFlag;
case 3:
return currentWaiter;
}
return null;
}
@Override
public int getPropertyCount() {
//TODO Auto-generated method stub
return 3;
}
@Override
public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo info) {
switch(arg0){
case 0:
info.type = PropertyInfo.INTEGER_CLASS;
info.name = "TableID";
break;
case 1:
info.type = PropertyInfo.INTEGER_CLASS;
info.name = "Capacity";
break;
case 2:
info.type = PropertyInfo.STRING_CLASS;
info.name = "StatusFlag";
break;
case 3:
info.type = PropertyInfo.INTEGER_CLASS;
info.name = "currentWaiter";
break;
default:break;
}
}
@Override
public void setProperty(int arg0, Object value) {
switch(arg0)
{
case 0:
TableID = Integer.parseInt(value.toString());
break;
case 1:
Capacity = Integer.parseInt(value.toString());
break;
case 2:
StatusFlag = value.toString();
break;
case 3:
currentWaiter = value.toString();
break;
default :
break;
}
}
Ist das problem mit der Linie
SoapObject pii = (SoapObject) soap.getProperty(i);
Es nicht wie die Castings dort. Ich bin ratlos, wie dieses Problem zu beheben.
Vielen Dank für Ihre Zeit und Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt
Verwenden
Dass für mich gearbeitet.