Хорошо, я решил эту проблему, вот как:
Я создал новый объект мыла с именем TextSoapObject
public class TextSoapObject extends SoapObject {
public static final String TAG = TextSoapObject.class.getSimpleName();
public TextSoapObject(String namespace, String name) {
super(namespace, name);
}
public String text;
public void setText(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
Далее я переопределил конверт SoapSerialization следующим образом:
public class ValueSerializationEnvelope extends SoapSerializationEnvelope {
public ValueSerializationEnvelope(int version) {
super(version);
}
public static final String TAG = ValueSerializationEnvelope.class.getSimpleName();
@Override
public void writeObjectBody(XmlSerializer writer, KvmSerializable obj) throws IOException {
if (obj instanceof TextSoapObject) {
writer.text(((TextSoapObject) obj).getText());
}
super.writeObjectBody(writer, obj);
}
}
И это все.
Чтобы использовать это, вы должны сделать следующее:
final TextSoapObject costOfRepairs = new TextSoapObject(namespace, "CostOfRepairs");
costOfRepairs.addAttribute("Currency", getCurrency());
costOfRepairs.setText(getRepairCosts() + "");
root.addSoapObject(costOfRepairs);
РЕДАКТИРОВАТЬ:
Эта проблема имеетбыл распознан для библиотеки ksoap2 и адресован здесь:
http://code.google.com/p/ksoap2-android/issues/detail?id=112
Должен быть исправлен в следующей версии ksoap2.