【问题标题】:I have a textview and I wanted to change the color of the substring in it [duplicate]我有一个文本视图,我想更改其中子字符串的颜色 [重复]
【发布时间】:2021-07-12 03:00:30
【问题描述】:

我有一个文本视图,我在其中连接两个字符串,我希望第一个字符串单独使用不同的颜色。

        tvMobileNo.text = "Mobile Number :   " + sharedPreferences.getString("mobile_number", "")
        tvEmail.text = "Email :   " + sharedPreferences.getString("email", "")
        tvAddress.text = "Address :   " + sharedPreferences.getString("address", "")

在这我只希望第一个字符串(“”手机号码“,”电子邮件“,”地址“)是不同的颜色。

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    TextView 支持一些 html 标签。

    String htmlText = "<font color='#ff0000'>Mobile Number:</font> 123456";
    tvMobileNo.setText(Html.fromHtml(htmlText));
    

    【讨论】:

    • 当我尝试用这个附加另一个字符串时会出现问题。然后就不行了
    【解决方案2】:

    使用SpannableString 来完成您的需求。这里我将id为restartAllEquipmentTvtextView字符串索引从3到5的字符串设置为红色

    restartAllEquipmentTv.text = SpannableString(getString(R.string.restart_and_factory_reset_setting_restart_content)).setSpan(ForegroundColorSpan(Color.RED), 3, 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE).toString()
    

    【讨论】:

      【解决方案3】:

      为像这样转换您的字符串提供通用功能。

      //pass param textviewid ,start,end,string
      //R.color.Red it's your color you can change it as requirement
      
      fun SpannableStringWithColor(view: TextView,start:Int,end:Int, s: String) {
          val wordtoSpan: Spannable =
              SpannableString(s)
          wordtoSpan.setSpan(
              ForegroundColorSpan(ContextCompat.getColor(view.context, R.color.Red)),
              start,
              end,
              Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
          )
          view.text = wordtoSpan
          }
      

      在你的情况下,你可以像这样轻松地做到这一点。

       SpannableStringWithColor(tvMobileNo,0,14,"Mobile Number :   " + sharedPreferences.getString("mobile_number", ""))
      
       SpannableStringWithColor(tvEmail,0,5,"Email :   " + sharedPreferences.getString("email", ""))
      
       SpannableStringWithColor(tvAddress,0,8,"Address :   " + sharedPreferences.getString("address", ""))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-19
        • 1970-01-01
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 2014-03-25
        • 2020-04-06
        • 2014-02-02
        相关资源
        最近更新 更多