6

ユーザーは何でも入力できる編集テキストを実装する必要がありますが、「@」で始まる新しい単語を入力するとオートコンプリートが開始されます潜在的なユーザーを示します。「@」付きのAndroid AutoCompleteTextViewはtwitterやfacebookのようなフィルタリングを言及しています

フィルタリングのためにAutoCompleteTextView関数を使用する方法を理解しています。しかし、「@」記号の後の最後の単語から文字をキャプチャする方法はわかりません(前の単語は無視します)。

したがって、ユーザーがAutoCompleteTextViewリストから選択されている場合、その単語を '@'と置き換える必要があります。


ユーザーがリストから "スティーブ" をクリックすると、テキストはに交換する必要があります


"これは@steveのためのメッセージである":


"これはのメッセージです。Steve"


また、サーバーに送信できる形式で文字列を取得する必要があります。すなわち、私は文字列をオフに送信する必要がある上の例から:


「これは、[:[email protected]、ID:名44]のメッセージです。」


は、私は、リスト内の電子メールを入力するための偉大なようだhttps://github.com/splitwise/TokenAutoComplete

見てきましたが、私は私のニーズのためにそれに応えるためにどのように確認していません。念頭に置いてベアは、私は複数の/重複は言及をサポートする必要があります:

例えば


「これはスティーブボブためのメッセージであり、これはのためのメッセージの2番目の文です。ボブ


誰もが知っているか、またはこのようなものを行っている場合は、rは希望eallyはそれを感謝します!

答えて

4

私は、正確に私が探していたlinkedinからのspyglassライブラリを使用して終了しました。 MentionsEditText(カスタマイズ可能)を提供します。リスト(AutoCompleteTextViewのような)で提案を表示するためにListPopupWindowも使用しました。ここで

は、あなたがこの形式の文字列を取得する方法リンク...

https://github.com/linkedin/Spyglass

+0

のですか? : "これは[username:[email protected]、id:44]のメッセージです。" –

+1

@ FlashAsh99あなたはspyglassを使った後のテキストの置き換え方法を教えてください – bala

+0

@ FlashAsh99また、テキストをスパイグラスで置き換えたかどうかを知りたい場合 – guerrero

3

以下の方法は、「@」で始まる単語を抽出します:

private void parseText(String text) { 
    String[] words = text.split("[ \\.]"); 
    for (int i = 0; i < words.length; i++) { 
     if (words[i].length() > 0 
       && words[i].charAt(0) == '@') { 
      System.out.println(words[i]); 
     } 
    } 
} 

あなたは言葉を持って、あなたの自動車の完全なフィルタを使用し、最終的にString.replaceを使用してテキストを置き換えたら。

関連する問題