Chcę włączyć standardowe kopiowanie wklejania dla TextView (tak samo jak w przypadku EditText). Jak mogę to zrobić?
Próbowałem użyć nieedytowalnego EditText, ale nie działało to dobrze (czasami można go było edytować lub nakładka kopiowania wklejania nie była wyświetlana). I prawdopodobnie nie jest to ogólnie dobre podejście.
Potrzebujesz działającego rozwiązania zaczynającego się od API 7.
ClipboardManager
jest dostępny od API 1 (patrz tutaj ). Co powiesz na długie naciśnięcie z wyskakującym okienkiem do skopiowania do schowka?Odpowiedzi:
Spróbuj
android:textIsSelectable
.to znaczy,
android:textIsSelectable="true"
źródło
EditTextPreference
już obsługuje kopiowanie / wklejanie. Z pewnością wydaje się, że tak jest w aplikacji Ustawienia.Aby włączyć standardowe kopiowanie / wklejanie dla TextView, możesz wybrać jedną z następujących opcji:
Zmiana w pliku układu: dodaj poniższą właściwość do swojego TextView
android:textIsSelectable="true"
W swojej klasie Java napisz tę linię, aby ustawić ją programowo.
myTextView.setTextIsSelectable(true);
I długo naciśnij TextView, aby zobaczyć pasek akcji kopiowania / wklejania.
źródło
Działa to w przypadku kopiowania przed plastrem miodu:
źródło
android:textIsSelectable
żyć w układzie, zostanie po prostu zignorowane na niższych poziomach interfejsu API. Następnie użyj rozwiązania Ixx w instrukcji if, która sprawdza, czy poziom API jest poniżej 11. Najlepsze z obu światów. Zaletąandroid:textIsSelectable
jest to, że daje ci pasek akcji wyboru tekstu platformy i ma przyjemne natywne uczucie.Rozwiązanie dla motywu na pełnym ekranie bez
ActionBar
Rozszerz
TextView
iw konstruktorze wklej następujący kodźródło
W XML Textview wklej ten kod
Następnie w pliku java
Warunek: należy skopiować i wkleić tekst znajdujący się w widoku tekstu.
OutCome: Używając widoku tekstowego , kiedy kliknąłem widok tekstu. Automatycznie skopiował tekst, który jest w widoku tekstu.
Uwaga: podczas importowania clipboardmanager spróbuj preferować
Proszę preferować menedżera schowka tekstowego
staraj się unikać menedżera schowka treści
źródło
użyj motywu
lub
ustaw TextView w xml
zobacz wynik
źródło
jeśli ktoś chce pójść o krok dalej i jednym kliknięciem wybrać i skopiować do schowka:
phone to TextView, a phone.Text to tekst, który zostanie skopiowany do schowka.
źródło
tak jest lepiej:
źródło
W przypadku
EditText
manifestacji wewnątrz działania użyjandroid:windowSoftInputMode="adjustResize"
źródło