我使用AutoCompleteTextView
来获取选择用户的位置。
我的问题是AutoCompleteTextView
并不总是返回相同的结构。
瓦伦西亚西班牙回归的例子"瓦伦西亚,西班牙" (城市,国家),但纽约返回"纽约,纽约,美国"。
然后我需要一个城市和国家,但我不知道如何得到它,我想知道是否有任何api电话或AutoCompleteTextView
有任何选择让我分开城市和国家。
这是我的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;
}
如果有任何想法,请帮助我,提前致谢。
答案 0 :(得分:1)
每个结果都是String类型。因此,尝试通过String类的split()方法将每个结果拆分为多个部分。使用“,”作为方法中的正则表达式。这个方法会返回一个String []。
现在,获取String []中元素的数量,肯定最后一个元素将是国家,其余元素将是城市(我根据你在上面的问题中给出的例子说这个)。把最后一个元素作为你的国家和城市,你可以连接String []的其余元素(如果String []包含多于2个元素,根据你的例子,它将在NewYork中。)
连接字符串的示例:
让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)