Подтвердить что ты не робот

Как включить стандартную копию для TextView в Android?

Я хочу включить стандартную копию для TextView (то же, что и для EditText). Как я могу это сделать?

Я попытался использовать редактируемый EditText, но он не работал (иногда он редактировался или наложение на копии не было показано). И это, вероятно, не очень хороший подход.

Требуется рабочее решение, начиная с API 7.

4b9b3361

Ответ 1

Это работает для копирования pre-Honeycomb:

import android.text.ClipboardManager;

textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        ClipboardManager cm = (ClipboardManager)context.getSystemService(Context.CLIPBOARD_SERVICE);
        cm.setText(textView.getText());
        Toast.makeText(context, "Copied to clipboard", Toast.LENGTH_SHORT).show();
    }
});

Ответ 3

Чтобы включить стандартную копию/вставку для TextView, U может выбрать одно из следующих значений:

  • Изменение в файле макета: добавьте свойство ниже в свой TextView

    android:textIsSelectable="true"

  • В вашем классе Java напишите эту строку, чтобы установить ее программно. myTextView.setTextIsSelectable(true);

И долгое нажатие на TextView вы можете увидеть панель действий копирования/вставки.

Ответ 4

Требуется API 11, Обновленный код, предыдущий метод устарел

Решение для полного экрана темы без ActionBar

Расширьте TextView и в паспорте конструктора выполните следующий код

this.setOnLongClickListener(new OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                ClipboardManager cManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData cData = ClipData.newPlainText("text", getText());
                cManager.setPrimaryClip(cData);
                Util.toast(mContext, string.text_copyed);
                return true;
            }
        });

Ответ 5

  • использовать тему

    @android:style/Theme.Black.NoTitleBar.Fullscreen
    

    или

    @android:style/Theme.WithActionBar
    
  • установить TextView в xml

    android:textIsSelectable="true"
    
  • см. результат

Ответ 6

Для текста редактирования, в манифесте внутри использования активности  android: windowSoftInputMode = "adjustResize"

Ответ 7

this лучше:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
final android.content.ClipboardManager clipboardManager = (android.content.ClipboardManager) context
        .getSystemService(Context.CLIPBOARD_SERVICE);
final android.content.ClipData clipData = android.content.ClipData
        .newPlainText("text label", "text to clip");
clipboardManager.setPrimaryClip(clipData);
} else {
final android.text.ClipboardManager clipboardManager = (android.text.ClipboardManager) context
        .getSystemService(Context.CLIPBOARD_SERVICE);
clipboardManager.setText("text to clip");
}