タグ

ブックマーク / tatete.blogspot.com (1)

  • EditTextのカーソル位置に文字列を挿入

    EditTextに文字列を追加する場合、append()というメソッドを使うが、これは常に編集テキストの末尾に文字列が追加されてしまう。 EditTextの末尾ではなく、カーソル位置に文字列を挿入したい場合にはこうする。 自前でなんとかする EditTextには、カーソル位置に文字列を挿入するというメソッドはないので、自前でなんとかするしかない。 考え方はこうだ。EditTextからテキストを取り出し、単なる文字列処理で文字列の挿入をおこなう。 getSelectionStart()とgetSelectionEnd()で選択範囲の先頭と末尾の位置を得る。テキストが選択されていない場合にはstart = endとなり、カーソル位置をあらわす。 Editable#replace()メソッドを使って文字列置換。 選択範囲を置換できるように、start != endの場合も考慮する。選択の仕方によ

  • 1