Как сделать выбор слова в тексте?

Как можно вывести текст, и при касании одного слово какое-то действие делалось.

Сначала думал recyclerview горизонтальный или gridview таблица получится не подходит/

Нужно будет длинные тексты в список выводить , listview тоже не сможет элементы в виде текста вывести.

Получается нужно textview вывести но как обработать клик по тексту и узнать какое слово было нажато.

Какие есть догадки? в englishcentral есть такое

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Andrew

Можно сделать при помощи EditText у которого не будет возможности редактирования текста:

<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:editable="false"/>

Дальше мы длинным нажатием можем выбрать слово:

EditText edit = (EditText)findViewById(R.id.edittext);
OnLongClickListener lc = new OnClickListener(){

     @Override
     public boolean onLongClick(View view){

    int selection_start = edit.getSelectionStart();
    int selection_end = edit.getSelectionEnd();

    String copy = edit.getText().toString().subString(selection_start, selection_end);

    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 

    clipboard.setText(copy);
    return false;
    }
 };

 edit.setOnLongClickListener(lc);

Вот есть подобные обсуждения 1, 2 и 3 из которых можно почерпнуть дополнительную информацию.

→ Ссылка