我在和双打打打交道,想找一个“双打”的等价物…
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("lat",lat));
nameValuePairs.add(new BasicNameValuePair("lng",lng));
edit//i正在发出http请求,我认为需要将lat值映射到php lat变量,将long映射到php变量。
谢谢!
最佳答案
如果必须使用NameValuePair
,有两种可能的解决方案。
您可以将Map
转换为List
的NameValuePair
:
List<NameValuePair> convertParameters(Map<String, Double> parameters) {
List<NameValuePair> result = new ArrayList<NameValuePair>();
for (Entry<String, Double> entry : parameters.entrySet()) {
result.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
}
return result;
}
或者,可以实现一个新的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);
}
}
在后一种情况下,可以使用可以直接传递给urlencodedformentity的构造函数的nameValuePair列表:
List<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new DoubleNameValuePair("lat", 1.0));
parameters.add(new DoubleNameValuePair("lng", 2.0));