Czy ktoś może mi powiedzieć, jak skopiować tekst obecny w danym widoku do schowka po naciśnięciu przycisku?
@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 :)
}
});
}
}
Chcę skopiować tekst do TextView textView do schowka po bCopy
naciśnięciu przycisku.
android
clipboard
copy-paste
clipboardmanager
clipboard-interaction
Darszan Gowda
źródło
źródło
Odpowiedzi:
użyj ClipboardManager
upewnij się, że dokonałeś importu,
android.content.ClipboardManager
a NIEandroid.text.ClipboardManager
. Później jest przestarzałe. Sprawdź ten link, aby uzyskać dodatkowe informacje.źródło
ClipboardManager clipboard = getSystemService(getContext(), ClipboardManager.class);
Oto metoda kopiowania tekstu do schowka:
Ta metoda działa na wszystkich urządzeniach z Androidem.
źródło
Wczoraj zrobiłem tę klasę. Weź to, dotyczy wszystkich poziomów API
źródło
Jako przydatne rozszerzenie Kotlin:
Aktualizacja:
Jeśli używasz ContextCompat, powinieneś użyć:
źródło
context.getSystemService(ClipboardManager::class.java)
że wskazujesz na podpis ContextCompat, prawda? Dzięki za opiniePo prostu użyj tego. Działa tylko dla Androida api> = 11, zanim będziesz musiał użyć ClipData.
Mam nadzieję, że to ci pomogło :)
[AKTUALIZACJA 19.03.2015] Tak jak Ujjwal Singh powiedział, że metoda
setText
jest już przestarzała, powinieneś użyć, tak jak zalecają to dokumenty, setPrimaryClip (clipData)źródło
(ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE); _clipboard.setText(YOUR TEXT);
setText
useClipData
+setPrimaryClip
Można to zrobić w Kotlin w następujący sposób:
Gdzie
file.readText()
jest twój ciąg wejściowy.źródło
użyj tego kodu
źródło
użyj tej funkcji do kopiowania do schowka
źródło
źródło
int sdk = android.os.Build.VERSION.SDK_INT;
źródło
użyj tej metody:
w miejscu setPrimaryClip możemy również użyć następujących metod:
Usuwa bieżący główny klip ze schowka.
Zwraca bieżący główny klip ze schowka.
Zwraca opis bieżącego głównego klipu w schowku, ale nie kopię jego danych.
Ta metoda jest przestarzała. Zamiast tego użyj getPrimaryClip (). Pobiera to główny klip i próbuje przymusić go do łańcucha.
Zwraca wartość true, jeśli w schowku znajduje się obecnie główny klip.
źródło
źródło
Wypróbuj następujący kod. Będzie obsługiwał najnowsze API:
źródło
Metoda pomocnicza Kotlin do dołączenia kliknij, aby skopiować Teksty na TextView
Umieść tę metodę gdzieś w klasie Util. Ta metoda dołącza nasłuchiwanie kliknięcia podczas wyświetlania tekstu do Kopiuj zawartość textView do clipText po kliknięciu tego textView
źródło
Możesz wykonać tę funkcję kopiowania do schowka po zdarzeniu przycisku onclick. więc umieść te linie kodu w przycisku naClickListerner
źródło
Po prostu napisz ten kod:
źródło
clipboard
. Ale dzięki zasetText
. Jest przestarzałe, więc użyjval clip = ClipData.newPlainText(null, text) clipboard.setPrimaryClip(clip)
.Dla Kotlina
źródło