Кто-нибудь может сказать, пожалуйста, как скопировать текст, присутствующий в определенном текстовом представлении, в буфер обмена при нажатии кнопки?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainpage);
textView = (TextView) findViewById(R.id.textview);
copyText = (Button) findViewById(R.id.bCopy);
copyText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
String getstring = textView.getText().toString();
//Help to continue :)
}
});
}
}
Я хочу скопировать текст в TextView textView в буфер обмена при bCopy
нажатии кнопки .
android
clipboard
copy-paste
clipboardmanager
clipboard-interaction
Даршан Говда
источник
источник
Ответы:
использовать ClipboardManager
убедитесь, что вы импортировали
android.content.ClipboardManager
и НЕandroid.text.ClipboardManager
. Последнее устарело. Проверьте эту ссылку для получения дополнительной информации.источник
ClipboardManager clipboard = getSystemService(getContext(), ClipboardManager.class);
Вот метод для копирования текста в буфер обмена:
Этот метод работает на всех устройствах Android.
источник
Вчера я сделал этот класс. Возьмите его, это для всех уровней API
источник
Как удобное расширение kotlin:
Обновить:
Если вы используете ContextCompat, вы должны использовать:
источник
context.getSystemService(ClipboardManager::class.java)
вы указываете на подпись ContextCompat, не так ли? Спасибо за отзывПросто используйте это. Он работает только для Android api> = 11, прежде чем вам придется использовать ClipData.
Надеюсь, это помогло вам :)
[ОБНОВЛЕНИЕ 3/19/2015] Точно так же, как Уджвал Сингх сказал, что этот метод
setText
устарел, вы должны использовать, так же, как это рекомендуют документы, setPrimaryClip (clipData)источник
(ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); _clipboard.setText(YOUR TEXT);
setText
useClipData
+setPrimaryClip
Это можно сделать в Kotlin следующим образом:
Где
file.readText()
ваша входная строкаисточник
используйте этот код
источник
используйте эту функцию для копирования в буфер обмена
источник
источник
int sdk = android.os.Build.VERSION.SDK_INT;
источник
используйте этот метод:
вместо setPrimaryClip мы также можем использовать следующие методы:
Очищает любой текущий основной клип в буфере обмена.
Возвращает текущий основной клип в буфере обмена.
Возвращает описание текущего основного клипа в буфере обмена, но не копию его данных.
Этот метод устарел. Используйте взамен getPrimaryClip (). Это извлекает основной клип и пытается привести его к строке.
Возвращает true, если в буфере обмена в данный момент есть основной клип.
источник
источник
Попробуйте следующий код. Он будет поддерживать новейшие API:
источник
Вспомогательный метод Kotlin для прикрепления щелчка для копирования текстов в TextView
Поместите этот метод где-нибудь в классе Util. Этот метод прикрепляет прослушиватель кликов на textview к Copy Content of textView к clipText по клику этого textView
источник
Вы можете выполнить эту функцию копирования в буфер обмена при нажатии кнопки onclick. поэтому поместите эти строки кода в вашу кнопку onClickListerner
источник
Просто напишите этот код:
источник
clipboard
. Но спасибо заsetText
. Это устарело, так что пользуйтесьval clip = ClipData.newPlainText(null, text) clipboard.setPrimaryClip(clip)
.Для Котлина
источник