Как получить начальный и конечный индекс выделенного текста в TextView?

Я хочу выделить выделенный текст в android textview. Может кто-нибудь сказать мне возможность получить начальный и конечный индекс выделенного текста в android textview.

Я использую следующий TextView для выбора текста.

<TextView
    android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:textIsSelectable="true"
    android:bufferType="spannable"
     />

Чтобы выделить строку спецификации, я использую следующий код. Как я могу получить начальный и конечный индекс выбранного текста.

    SpannableString str = new SpannableString("Highlighted. Not highlighted.");
    str.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, 11, 0);
    textView.setText(str);

1 ответ

Может быть, это то, что вы ищете

    int start = textView.getSelectionStart();
    int end = textView.getSelectionEnd();

образец кода:

textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        ClipboardManager cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
        cm.setText(textView.getText());
        int start = textView.getSelectionStart();
        int end = textView.getSelectionEnd();
        Toast.makeText(context, "Copied to clipboard", Toast.LENGTH_SHORT).show();
      }
  });
Другие вопросы по тегам