【问题标题】:Get city and country from AutoCompleteTextView从 AutoCompleteTextView 获取城市和国家
【发布时间】:2016-07-16 19:40:38
【问题描述】:

我使用AutoCompleteTextView 来获取选择用户的位置。 我的问题是 AutoCompleteTextView 并不总是返回相同的结构。

例如 Valencia Spain 返回“Valencia, Spain”(城市、国家),但纽约返回“New York, NY, United States”。

然后我需要单独的城市和国家但我不知道如何得到它,我想知道是否有任何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;
}

如果有任何想法请帮助我,在此先感谢。

【问题讨论】:

  • 您有没有找到更好的解决方案,欢迎分享?

标签: android autocomplete textview location


【解决方案1】:

每个结果都是一个字符串类型。因此,请尝试借助 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)

【讨论】:

  • 这不是最好的选择,但找到了!如果你找到更好的选择也告诉我。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
  • 2012-11-18
  • 2016-12-17
相关资源
最近更新 更多