在 Android 中使用 NameValuePair 发送双精度值

Send double value with NameValuePair in Android

我正在尝试通过网络服务连接到服务器。在此 Web 服务中,我正在传递名称值对列表。现在的问题是 namevaluepair 只接受 (String,String) 参数。我的服务器在哪里需要双重价值。所以我无法将我的双精度转换为字符串并传递它(因为服务器会将其视为字符串并会抛出 'Improper format' 错误。

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("Name", mydoublevalue));  
        JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);

有什么办法吗?。还是我必须将服务器的双精度类型更改为字符串,以便服务器期望字符串而不是双精度?

这会将双精度值转换为字符串。

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("Name", String.valueOf(mydoublevalue)));  
            JSONArray jsonobj = jsonParser.makeHttpRequest_array(url,type, nameValuePairs);

最后我设法只从 Android 方面做到了。

这是我所做的。 我创建了自己的 class 来实现 NameValuePair 接口。您可以在 BasicNameValuePair 中使用 STRING, DOUBLE 而不是 STRING,STRING。这是代码。

import org.apache.http.NameValuePair;

public class DoubleNameValuePair implements NameValuePair {

 String name;

    double value;

    public DoubleNameValuePair(String name, double value) {
        this.name = name;
        this.value = value;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public String getValue() {
        return Double.toString(value);
    }

}

然后当你想添加到列表时,只需执行

nameValuePairs.add(new DoubleNameValuePair("Latitude",21.3243));