ユーザーがコンテンツをフィードに投稿できるアプリケーションで作業しています。私の編集テキスト(作成に使用)では、テキストの色はグレーです。しかし、ユーザがハッシュタグをタイプすると、 #help入力時に黒色にする必要があるので、ユーザーが '#'をタイプすると、新しい単語が始まるまでテキストが黒く塗りつぶされなければなりません。テキストの色はグレーに戻す必要があります。ユーザーがハッシュタグを入力するときにテキストの色を変更します
私はテキストウォッチャーと色分け可能な文字列を使用しています。ここで
は私がtextwatcher onTextChanged
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//Remove Text watcher to prevent infinite look
mTextField.removeTextChangedListener(contentFieldWatcher);
String startChar = null;
startChar = Character.toString(s.charAt(start));
L.i(getClass().getSimpleName(), "CHARACTER OF NEW WORD: " + startChar);
if (startChar.equals("#")) {
tagCheck(s.toString().substring(start), start, start + count);
}
}
tagCheck方法
private void tagCheck(String s, int start, int end) {
mSpannable.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.black_colour)), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
mSpannableがSpannableあるとやっていることです。
このメソッドの問題は、 '#'はstartCharとして表示されますが、ユーザーがシンボルまたは文字の次の文字を入力すると、startCharとして表示されます。ユーザーがsantaをタイプしたかのように、 's'はstartCharのままです。だから私は、ユーザーがハッシュタグをタイプするときにテキストを動的に色付けする方法に直面しています。
普通の文字は正しく動作しますが、シンボルを使用すると正しく動作しません。私は質問が明快であることを願っています。私は数日の間これを見ていました。それはすべて曇っています:)
あなたが最もinapropriate文字からハッシュタグを明確にお知らせ –
場合は、自動での問題が存在することをお勧めです、次を使用できsoloution
を試してみましたが、見つかりましたユーザーが自動提案をクリックすると、色付けが失われます –