gpt4 book ai didi

android - Ksoap2 Android 添加属性到一个简单的属性

转载 作者:搜寻专家 更新时间:2023-11-01 08:10:53 26 4
gpt4 key购买 nike

我正在尝试在 SoapObject 中创建一个新属性,它将包含简单的字符串属性以及它们的属性,如下所示:

<Power Unit="kw">1500</Power>

这是我在下面的示例中使用的代码。

final SoapObject powerObject= new SoapObject(namespace, "Power");
powerObject.addAttribute("Unit", getPowerUnit());

PropertyInfo powerObjectProperty = new PropertyInfo();
powerObjectProperty .setName("");
powerObjectProperty .type = String.class;
powerObjectProperty .setValue(getPower());
powerObjectProperty .addProperty(powerObjectProperty);
root.addSoapObject(powerObject); // this is my root for the hierarchy

我能达到的最好结果如下:

<Power Unit="kw"><>1500</></Power>

我什至尝试将所有内容添加为字符串,但对 <> 标签进行编码。

&ltPower Unit"kw"&gt1500&lt/Power&gt

我正在使用:

Android 上的 ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar。

最佳答案

好的,我已经解决了这个问题,方法如下:

我创建了一个名为 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 版本中修复。

关于android - Ksoap2 Android 添加属性到一个简单的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com