从 AutoCompleteTextView 获取城市和国家
Get city and country from AutoCompleteTextView
我使用 AutoCompleteTextView
获取 select 用户的位置。
我的问题是 AutoCompleteTextView
并不总是 return 相同的结构。
西班牙巴伦西亚 return "Valencia, Spain"(城市,国家/地区)示例,但纽约 return "New York, NY, United States".
然后我需要单独的城市和国家,但我不知道如何获得它,我想知道是否有任何 api 电话或 AutoCompleteTextView
有任何选择 return我把城市和乡村分开。
这是我的 PlacesAutoCompleteAdapter:
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new Filter.FilterResults();
if (constraint != null) {
filterResults.values = PlaceAPI.autocomplete(constraint.toString());
filterResults.count = resultList.size();
}
return filterResults;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
setItems((ArrayList<String>) results.values);
if (results != null && results.count > 0) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
};
return filter;
}
如果有任何想法请帮助我,在此先感谢。
每个结果都是字符串类型。因此,尝试借助 String class 的 split() 方法将每个结果拆分成多个部分。使用“,”作为方法中的正则表达式。此方法将 return 你一个 String[].
现在,获取 String[] 中的元素数量,最后一个元素肯定是国家,其余元素是城市(我是根据您在上面问题中给出的示例说的) .将最后一个元素作为您的国家和城市,然后您可以连接 String[] 的其余元素(如果 String[] 包含超过 2 个元素,根据您的示例,这些元素将位于纽约)。
字符串连接示例:
让我们把 myStrings 作为我的 String[];
for(String string : myStrings) {
if (string.length() > 2) {
// concatenate your strings here to form the complete city name
}
}
要了解有关拆分字符串的更多信息,请访问以下网页:
http://developer.android.com/reference/java/lang/String.html#split(java.lang.String)
我使用 AutoCompleteTextView
获取 select 用户的位置。
我的问题是 AutoCompleteTextView
并不总是 return 相同的结构。
西班牙巴伦西亚 return "Valencia, Spain"(城市,国家/地区)示例,但纽约 return "New York, NY, United States".
然后我需要单独的城市和国家,但我不知道如何获得它,我想知道是否有任何 api 电话或 AutoCompleteTextView
有任何选择 return我把城市和乡村分开。
这是我的 PlacesAutoCompleteAdapter:
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new Filter.FilterResults();
if (constraint != null) {
filterResults.values = PlaceAPI.autocomplete(constraint.toString());
filterResults.count = resultList.size();
}
return filterResults;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
setItems((ArrayList<String>) results.values);
if (results != null && results.count > 0) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
};
return filter;
}
如果有任何想法请帮助我,在此先感谢。
每个结果都是字符串类型。因此,尝试借助 String class 的 split() 方法将每个结果拆分成多个部分。使用“,”作为方法中的正则表达式。此方法将 return 你一个 String[].
现在,获取 String[] 中的元素数量,最后一个元素肯定是国家,其余元素是城市(我是根据您在上面问题中给出的示例说的) .将最后一个元素作为您的国家和城市,然后您可以连接 String[] 的其余元素(如果 String[] 包含超过 2 个元素,根据您的示例,这些元素将位于纽约)。
字符串连接示例:
让我们把 myStrings 作为我的 String[];
for(String string : myStrings) {
if (string.length() > 2) {
// concatenate your strings here to form the complete city name
}
}
要了解有关拆分字符串的更多信息,请访问以下网页:
http://developer.android.com/reference/java/lang/String.html#split(java.lang.String)