簡體   English   中英

在Android中使用NameValuePair發送雙值

[英]Send double value with NameValuePair in Android

我正在嘗試通過Web服務連接到服務器。 在此Web服務中,我正在傳遞namevaluepairs的列表。 現在的問題是namevaluepair僅接受(String,String)參數。 我的服務器期望將價值翻倍。 因此,我無法將我的double轉換為字符串並將其傳遞(如服務器將其視為字符串並會拋出“格式錯誤”錯誤。

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

有沒有出路? 還是我必須將服務器的雙精度類型更改為字符串,以便服務器期望使用字符串而不是雙精度?

這會將double值轉換為String。

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

最終我只從Android方面做到了。

這就是我所做的。 我創建了自己的實現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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM