2016-03-29 8 views
0

私はAutoCompleteTextViewを使用して、選択したユーザーの場所を取得します。 私の問題は、AutoCompleteTextViewが必ずしも同じ構造を返さないということです。AutoCompleteTextViewから都市と国を取得

スペインのバレンシアの例は「バレンシア、スペイン」(市、国)ですが、ニューヨークの場合は「ニューヨーク、ニューヨーク、ニューヨーク」の戻り値です。

私は都市と国だけでは必要ですが、私はそれをどうやって入手するのかわかりません。私には何かの呼び出しがあるか、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; 
} 

いずれかが、事前に感謝し、私を助けてくださいアイデアを持っている場合。

答えて

1

各結果は文字列型です。したがって、Stringクラスのsplit()メソッドの助けを借りて、各結果を部分に分割してみてください。メソッドの正規表現として "、"を使用します。このメソッドはString []を返します。

ここでString []内の要素の数を取得してください。最後の要素は国になり、残りは都市になります(これはあなたが上の質問で示した例に基づいています)。あなたの国の最後の要素を取り、都市の場合、String []の残りの要素を連結することができます(String []には、NewYorkに含まれる2つ以上の要素が含まれています)。文字列の連結のための

例:

[]は私の文字列としてmyStringsを取ることができます。

for(String string : myStrings) { 
    if (string.length() > 2) { 
     // concatenate your strings here to form the complete city name 
    } 
} 

次のWebページに移動し、文字列を分割について鉱石を知るには:

http://developer.android.com/reference/java/lang/String.html#split(java.lang.String)

+0

これが最良の選択肢ではなく、発見します!より良いオプションを見つけたら、私に知らせてください。ありがとう! – dpulgarin

+0

確かに、それを行います。 –