Intereting Posts
Изображение пользователя android share from url Как центрировать вид внутри макета Android? Неустранимая ошибка: неверный макет java.lang.String по значению Возможно ли обнаружение устройств Android, расположенных рядом друг с другом Я продолжаю получать сообщения: К сожалению, «некоторые китайцы» прекратили В чем разница между MediaPlayer и VideoView в Android? Response-native: команда не найдена Android.os.NetworkOnMainThreadException в AsyncTask Студия Android не может разрешить com.google.android.gms.location.places.AutocompleteFilter IllegalStateException: Невозможно изменить тег фрагмента, был андроид: сейчас переключатель android: switcher Android ContentProvider и Google IO Rest Talk Кнопка Override Power, как кнопка «Домой» Остановка распознавания жестов в Google Now ClassNotFoundException для пользовательского ImageView в приложении для Android Android анимирует мою относительную компоновку снизу вверх и сверху вниз, используя трансляцию анимации при просмотре изображения.

Android: копирование в буфер обмена выбранного текста из TextView

Есть ли возможность скопировать в буфер обмена из компонента интерфейса TextView только выделенный текст?

Я поймал длинное событие пресса, и я скопировал полный текст в буфер обмена, но теперь я хочу указать начало и конец выделения, которое нужно скопировать из TextView.

Спасибо.

Solutions Collecting From Web of "Android: копирование в буфер обмена выбранного текста из TextView"

TextView tv; String stringYouExtracted = tv.getText().toString(); int startIndex = tv.getSelectionStart(); int endIndex = tv.getSelectionEnd(); stringYouExtracted = stringYouExtracted.subString(startIndex, endIndex); ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(stringYouExtracted); 

EDIT (предыдущий – это полный ответ, но я наткнулся на свой ответ по ошибке, поэтому хотел бы добавить) :

С помощью новых API измените последние две строки на:

 if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) { android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); clipboard.setText(stringYouExtracted); } else { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); android.content.ClipData clip = android.content.ClipData.newPlainText("Copied Text", stringYouExtracted); clipboard.setPrimaryClip(clip); } 

"Copied Text" – это заголовок для вашего объекта COPY в новом APIS

Вы можете сделать это следующим образом:

 ClipboardManager myClipboard = myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipData myClip; EditText editText = (EditText) findViewById(R.id.editText3); int min = 0; int max = editText.getText().length(); if (editText.isFocused()) { final int selStart = editText.getSelectionStart(); final int selEnd = editText.getSelectionEnd(); min = Math.max(0, Math.min(selStart, selEnd)); max = Math.max(0, Math.max(selStart, selEnd)); } // here is your selected text final CharSequence selectedText = editText.getText().subSequence(min, max); String text = selectedText.toString(); // copy to clipboard myClip = ClipData.newPlainText("text", text); myClipboard.setPrimaryClip(myClip); 

Замените EditText на TextView