Android 像HTML选择框一样使用微调器维护名称-值对?
我有一个微调器,显示位置名称数据,当然是字符串 现在的问题是,当用户选择它们时,我需要进一步传递位置的经纬度值 将该位置字符串发送回Geolocater并再次获取其经度-纬度值将是一件多余的事情 是否有一种方法可以维护连接到微调器中每个字符串项的经度-纬度双值类型。就像它发生在html选择框中一样?Android 像HTML选择框一样使用微调器维护名称-值对?,android,android-spinner,Android,Android Spinner,我有一个微调器,显示位置名称数据,当然是字符串 现在的问题是,当用户选择它们时,我需要进一步传递位置的经纬度值 将该位置字符串发送回Geolocater并再次获取其经度-纬度值将是一件多余的事情 是否有一种方法可以维护连接到微调器中每个字符串项的经度-纬度双值类型。就像它发生在html选择框中一样? 有没有一种模式可以做到这一点,我的意思是,这似乎是foursquare等应用程序中非常流行的任务。是的,这非常简单,尽管它们不像HTML中那样完全是名称/值对 微调器实际上通过在适配器上调用getV
有没有一种模式可以做到这一点,我的意思是,这似乎是foursquare等应用程序中非常流行的任务。是的,这非常简单,尽管它们不像HTML中那样完全是名称/值对 微调器实际上通过在适配器上调用getView来显示其值。默认情况下,ArrayAdapter应用于每个项的字符串-项本身不一定是字符串。因此,您可以定义一个新类,例如:
public class SpinnerItem {
String name;
double latitude;
double longitude;
@Override
public String toString() {
return name;
}
}
然后创建ArrayAdapter而不是ArrayAdapter
这将在微调器中显示名称。要获取经度/纬度值,只需使用adapter.getItemposition,例如从OnItemSelectedListener获取
如果您使用的是自定义适配器,那么解决方案基本上是相同的,只是您将在适配器中重写getView,而不是在项中实现toString