シナリオで使用するより適切なコンポーネントはEditText
です。
マニフェスト ファイルで次のように宣言されます。
<EditText
android:text=" This is not an editable EditText"
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:textColor = "@android:color/white"
android:editable = "false"
android:cursorVisible="false"
android:layout_height="wrap_content"
android:background = "@android:drawable/dark_header">
</EditText>
次に、選択したテキストを取得するのはわずか 2 行のコードです。
EditText et = (EditText)findViewById(R.id.title);
String selectedText = et.getText().substring(et.getSelectionStart(), et.getSelectionEnd());
ここでは、テキストが左から右に選択されたと仮定しました。右から左に選択された場合、上記は例外になるため、開始位置が終了位置よりも高いかどうかを確認することでそれを回避できます。