【问题标题】:Android How can I Convert a String to a EditableAndroid 如何将字符串转换为可编辑
【发布时间】:2012-11-01 09:31:56
【问题描述】:

我们都知道我们可以 setText(String) 到一个编辑文本框,但是如果你想从一个字符串变量中获取一个可编辑的变量,你该怎么做呢?

对于 Temp,我制作了一个不可见的 editText 框来设置,然后从中获取将字符串变为可编辑的。

re: 再次供我自己参考 String = editablevariable.getText().toString()

【问题讨论】:

  • 不确定你想做什么。更多信息可能会有所帮助。
  • 您想复制字符串以便修改它?如果是这样,则没有必要,因为您不能直接修改 String 对象,它总是会产生一个新的 String。如果没有,您需要添加更多详细信息,您拥有什么以及您想要什么(以及什么不起作用)
  • 请张贴代码以使您的意图更清晰:)
  • 我想我知道你想问什么:不过在 Kotlin 中可以更好地描述它:

    说 etUserName 是一个 EditText,
    当你想获得一个文本时从中:
    val strUserName = binding.etUserName.text.toString()
    然后,当你必须将文本设置为它时
    binding.etUserName.setText(signupFormParcel.strEmail)
    但是你不能直接执行以下操作:
    binding.etUserName.text = signupFormParcel.strEmail
    所以你可以这样做:
    binding.etUserName.text = SpannableStringBuilder(signupFormParcel.strEmail)
    其中 strEmail 是一个字符串.

标签: java android


【解决方案1】:

您可能已经发现,Editable 是一个接口,因此您不能调用new Editable()
然而,一个 Editable 只不过是一个带有 Spannables 的字符串,所以使用SpannableStringBuilder

Editable editable = new SpannableStringBuilder("Pass a string here");

如果您只想更改 Spannables,从不文本本身,您可以使用基本的SpannableString

【讨论】:

    【解决方案2】:

    使用Editable.Factory.getInstance().newEditable(str) 来自android documentation:

    从指定的 CharSequence 返回一个新的 SpannedStringBuilder。您可以覆盖它以提供不同类型的 Spanned。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • @Sree 它确实回答了它,我的意思是他应该将此函数与字符串一起使用以将其转换为可编辑。所以简单地 str 是他想要转换为可编辑的字符串。
    • @Sree 来自 android 文档:developer.android.com/reference/android/text/…
    • +1 :比接受的答案更干净,使用提供的工厂而不是依赖于底层实例的类型。
    猜你喜欢
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2018-12-23
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多