Khi sao chép String
từ bất kỳ trang trình duyệt nào, pasteData
hoạt động bình thường. Tuy nhiên khi sao chép SpannedString
từ một tin nhắn gửi biên tập viên mục (lĩnh vực), các ứng dụng bị treo và thấy thông báo lỗi này:Tại sao không hiển thị java.lang.ClassCastException: android.text.SpannableString với java.lang.String?
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
Mã của tôi:
// since the clipboard contains plain text.
ClipData.Item item = clipBoard.getPrimaryClip().getItemAt(0);
// Gets the clipboard as text.
String pasteData = new String();
pasteData = (String) item.getText();
nơi dụ ClipboardManager
định nghĩa là clipBoard
, dưới đây :
clipBoard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE);
clipBoard.addPrimaryClipChangedListener(new ClipboardListener());
Tất cả những gì tôi đang cố gắng làm là sử dụng pasteData
trongĐịnh dạng. Làm cách nào để loại bỏ lỗi này? Bất kỳ trợ giúp nào được đánh giá cao.
câu trả lời Mã-chỉ không được khuyến khích vì nó có thể nhầm lẫn OP và độc giả trong tương lai. Thay vào đó, hãy giải thích mã nào. –
Đây là một công việc xung quanh, và không giải quyết vấn đề gốc. Vấn đề là item.getText() trả về một CharSequence, không phải là một String. OP nên sử dụng item.getText(). ToString() để chuyển đổi CharSequence thành String –