【问题标题】:Get HTML text from TextView/EditText, then uppercase从 TextView/EditText 获取 HTML 文本,然后大写
【发布时间】:2021-12-10 18:34:55
【问题描述】:

我需要从 TextView/EditText 组件中获取 HTML 格式的文本,然后我想(以编程方式)将它们转换为大写,在特定的用户参数下,检查两个列表ViewGroup 对象中包含的组件数:

//These custom functions return ArrayList of components
ArrayList<EditText> myEditTextList = getAllEditText(viewGroup);
ArrayList<TextView> myTextViewList = getAllTextView(viewGroup);

for (EditText et : myEditTextList) {
    //At this point, I'm expecting "Welcome to <b>My World</b>" or similar, but I'm getting "Welcome to My World"
    String original_text = et.getText().toString();
    et.setText(Html.fromHtml(original_text.toUpperCase());
}
for (TextView tv : myTextViewList) {
    //Same as before
}

我在这里查看了一些主题,但找不到任何关于此问题的有效解决方案。

注意:我知道Html 类效率低下,但我的问题实际上是关于获取 多于设置

谢谢大家

【问题讨论】:

    标签: android html android-studio textview android-edittext


    【解决方案1】:
    dataBinding!!.tvHtml.setText(
        Html.fromHtml(
           "Testing text. <b>Bold Value</b>. Normal text."
        ),
        TextView.BufferType.EDITABLE)
    val htmlText = Html.toHtml(
            dataBinding!!.tvHtml.editableText
    ).toString()
    Log.e("TAG", "init: " + htmlText)
    

    【讨论】:

    • 请解释你的代码
    • 我已经尝试使用 TextView 对象中的 getEditableText() 函数,但它返回 null
    • 我已经在使用它了,它工作正常。
    • @mousetail 这段代码有什么问题吗?
    • 不,但是在 SO 上,我们不认为纯代码答案质量很高,它需要包含解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多