android - 科特林。删除文本并将其复制到剪贴板
问题描述
我正在学习 kotlin 并尝试制作一个可以点击文本并将其复制到剪贴板的应用程序
我已经设法敲击文本并将其插入剪贴板,但是当我打开键盘粘贴它时,它看起来像普通文本。当我长按文本字段并点击“粘贴”时,它会按预期粘贴。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textInput.addTextChangedListener(object : TextWatcher{
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun afterTextChanged(p0: Editable?) {
strokedText.text = null
val a = textInput.text.toString()
val spannableString1 = SpannableString(a)
spannableString1.setSpan(StrikethroughSpan(), 0, a.length, 0)
strokedText.text.replace(0,0, spannableString1)
}
})
}
fun convert(view: View) {
super.moveTaskToBack(true)
val clipboard: ClipboardManager =
getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("label", strokedText.text)
clipboard.setPrimaryClip(clip)
textInput.text = null
//Toast.makeText(this, "All Done! Past your text now!", Toast.LENGTH_SHORT).show()
Toast.makeText(this, R.string.copyMessage, Toast.LENGTH_SHORT).show()
// minimizeApp()
}
任何帮助表示赞赏
解决方案
最后,我设法通过添加 Unicode 符号“\u0336”找到了解决方案
fun convert(view: View) {
super.moveTaskToBack(true)
val clipboard: ClipboardManager =
getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
for (asd in strokedText.editableText.length downTo 0) {
strokedText.editableText.insert(asd, "\u0336")
}
val clip = ClipData.newHtmlText("",strokedText.text,("<del>" + strokedText.editableText+ "</del>"))
clipboard.setPrimaryClip(clip)
textInput.text = null
Toast.makeText(this, R.string.copyMessage, Toast.LENGTH_SHORT).show()
}
我将 ClipData 制作为 HtmlText,但我很确定 PlainText 也可以。
现在,剪贴板提供了很好的文本而不是原始文本
推荐阅读
- python - Python 使用用户名、密码和 API 密钥连接到 API
- reflection - 如何检查 Rust 编译时是否实现了 trait?
- c# - Winforms Tag 属性同时具有两个值
- regex - 使用 sed 替换文本文件中 2 个特定行之间的文本
- gradle - Android - 守护进程未运行
- java - 如何在一个 Activity 中显示多个 RecyclerView 的更简单的表达式
- java - JPA 按日期和状态查询表 SpringBoot
- ruby-on-rails - Rails gem jwt_sessions 注销未授权
- angular - 模块的 Angular loadChildren 属性绝对路径不起作用
- racket - 如何在类型化球拍中指定 void 函数?