私はAndroidアプリケーションに取り組んでいます。
次に、ユーザーからの入力をEditTextに取り込みます。最後の終止符の後のテキストを黒色で表示し、最後の終止符の前のテキストを赤色で表示したい。
たとえば、ユーザーがEditTextに以下の文を入力した場合:
'my name is john.I am from India.I Love Android'
「IloveAndroid」を黒で、文の最初の部分を赤で表示したいと思います。
それを行う方法はありますか?
私はAndroidアプリケーションに取り組んでいます。
次に、ユーザーからの入力をEditTextに取り込みます。最後の終止符の後のテキストを黒色で表示し、最後の終止符の前のテキストを赤色で表示したい。
たとえば、ユーザーがEditTextに以下の文を入力した場合:
'my name is john.I am from India.I Love Android'
「IloveAndroid」を黒で、文の最初の部分を赤で表示したいと思います。
それを行う方法はありますか?
SpannableString
テキストに属性を適用するために使用します。ここであなたが読みたいかもしれないブログエントリ:http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring。
次の方法でテキストの変更を聞きます。
editText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
if (!colorHasSet) {
makeColorText();
}
colorHasSet = false;
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
});
次に、WebnetMobileがリンクしているチュートリアルを使用して、テキストを色付けする関数を宣言します。
public void makeColorText() {
SpannableString ss = new SpannableString(textEdit.getText());
// customize ss here
// ...
colorHasSet = true;
editText.setText(ss);
}
colorHasSet
stackOverflowExceptionを防ぐために、フラグブール変数を定義する必要があります。
これは、インスタントカラーテキストを備えた完全なWYSIWYGエディターではありません。完全でニーズに合うように、いくつかのハックを実行する必要があります。これは、自分で行う必要があります。