2017-06-11 16 views
0

編集テキストのテキストを選択し、小さなツールバーのボタンをクリックしてテキストをイタリックまたは太字にする機能を構築しようとしています。私はアンドロイドスタジオでいくつかのコードを書いたが、問題がある。Android編集のテキストイタリックの問題

public void bold(EditText text){ 
     int start = text.getSelectionStart(); 
     int end = text.getSelectionEnd(); 
     CharacterStyle style = new StyleSpan(Typeface.BOLD); 
     SpannableStringBuilder sb = new SpannableStringBuilder(text.getText().toString()); 
     sb.setSpan(style, start, end, 0); 
     text.setText(sb); 
    } 

ユーザーが太字ボタンをクリックすると、それは私が選択を変更し、斜体をクリックした場合、それが選択したテキストをイタリックが、私はすでにに適用される大胆なスタイルを削除bold()関数を呼び出し、選択されたtext.butを太字編集テキスト

例えば

exampleone exampletwoは(テキストを太字)

しかし、それは

exampleone 例となりクリック選択exampletwo場合やイタリック

をクリックしてください2

私はEdittextで最初の単語のスタイルを失った。

この問題を解決するにはどうすればよいですか?

+0

テキストの状態を追跡する必要があります。 – Luis

答えて

-1
SpannableStringBuilder ssb = newSpannableStringBuilder(bodyView.getText()); 

cs = new StyleSpan(Typeface.BOLD); 
ssb.setSpan(cs, start, end, 1); 

cs = new StyleSpan(Typeface.ITALIC); 
ssb.setSpan(cs, start, end, 1); 

私はあなたがボールドやイタリックに同じSpannablestringbuilderを使うべきだと思います。 それは私のために働く。