当前位置: 首页 > news >正文

本地搭建php网站什么是网络营销公司

本地搭建php网站,什么是网络营销公司,做交通分析的网站,找回wordpress密码遇到一个需求,让Android端实现给定一个字符串指定下标的几个字颜色与其他字颜色不一致。 主要是用ForegroundColorSpan这个API来传入颜色值,用SpannableString来设置指定索引下标的字的颜色值。 这里通过给定一个输入文字描述框,要求输入指定…

遇到一个需求,让Android端实现给定一个字符串指定下标的几个字颜色与其他字颜色不一致。

主要是用ForegroundColorSpan这个API来传入颜色值,用SpannableString来设置指定索引下标的字的颜色值。

这里通过给定一个输入文字描述框,要求输入指定下标,输入格式类似于1,3,4,6。输入数字,同时用英文逗号隔开,只要点击按钮提交以后,则来改变显示的字体颜色。

布局文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><EditTextandroid:id="@+id/edit_num"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="输入下标(例如 1,3,5)"tools:ignore="MissingConstraints"></EditText><Buttonandroid:id="@+id/submit"android:text="提交"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.467"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="@+id/edit_num"app:layout_constraintVertical_bias="0.26"tools:ignore="MissingConstraints"></Button><TextViewandroid:id="@+id/text_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="HelloWorld"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

MainActivity如下所示:

import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import android.widget.Button
import android.widget.EditText
import android.widget.TextViewclass MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)val indexInput = findViewById<EditText>(R.id.edit_num)val textView = findViewById<TextView>(R.id.text_view)val buttonSubmit = findViewById<Button>(R.id.submit)val originalText = "HelloWorld  测试文字颜色变化"// 初始化显示原始文本textView.text = originalTextbuttonSubmit.setOnClickListener {val s = indexInput.textval strArray = s?.toString()val indexArray = strArray?.split(",")val len = indexArray?.size ?: 20val indexNumArray = IntArray(len){0}// 创建 SpannableStringval spannableString = SpannableString(originalText)indexArray?.let {for (i in indexArray.indices) {indexNumArray[i] = Integer.parseInt(indexArray[i])val idx = indexNumArray[i]// 检查下标是否有效,避免越界错误if (idx in originalText.indices) {// 为每个字符创建一个新的 ForegroundColorSpanval redColorSpan = ForegroundColorSpan(Color.RED)spannableString.setSpan(redColorSpan,idx,idx + 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)}}}textView.text = spannableString}}
}

其中这里有个需要注意的是:

如果需要多次变更字体颜色,需要把ForegroundColorSpan设置在循环体内。如果把ForegroundColorSpan放在循环体外,则只有最后一个字会生效。错误示例如下:

        val redColorSpan = ForegroundColorSpan(Color.RED)indexArray?.let {for (i in indexArray.indices) {indexNumArray[i] = Integer.parseInt(indexArray[i])val idx = indexNumArray[i]spannableString.setSpan(redColorSpan, idx, idx + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)  // 第index个字}}

问题原因:

  • 你在循环中对每个字符的位置都应用了相同的 ForegroundColorSpan(红色),并且每次调用 setSpan 时,该 Span 会替换之前的位置上的 Span,导致只有最后一个字符保持红色。

解决方案:

为了解决这个问题,确保为每个字符应用不同的颜色时不要覆盖先前的 Span。可以通过创建一个新的 ForegroundColorSpan 实例,并在每次 setSpan 时分别应用。

关键更改:

  1. 确保每次 setSpan 使用新的 ForegroundColorSpan 对象
    • 在每次循环中创建一个新的 ForegroundColorSpan 实例,确保不会覆盖先前的颜色设置。
  2. 下标校验
    • setSpan 之前,确保你所提供的下标值是合法的,避免越界问题(idx in 0 until originalText.length)。
  3. IntArray 初始化
    • 使用 IntArray 来存储转换后的下标值,并确保在处理时进行合理的范围检查。

效果:

当用户输入下标(例如 1,3,5),然后点击按钮时,指定下标的字符将正确变为红色,不会再出现只有最后一个字符变色的情况。

http://www.zhongyajixie.com/news/57052.html

相关文章:

  • sketch可以做网站交互么seo网站排名助手
  • 网站建设公司创意百度官网首页官网
  • 网站高端网站建设如何免费注册一个网站
  • 网站架构设计师自助建站系统模板
  • 徐州seo关键词郑州seo外包顾问热狗
  • 如何管理手机网站首页沪深300指数基金
  • 做电影网站需要哪些条件网络营销成功案例有哪些2022
  • 网站开发有前景吗正规网站优化推广
  • 网站如何建设时时彩百度投诉中心人工电话号码
  • 上海做网站优化价格seo知识培训
  • 怎样是做网站营销网站推荐
  • 怎么做投票管理系统后台网站济南优化seo公司
  • wordpress禁止谷歌字体aso排名优化知识
  • 上行30m可以做网站吗培训课程开发
  • html网站的直播怎么做的郑州网络推广排名
  • 做网站在哪里找素材媒体发稿平台
  • 广州建设工程安全质量监督网站企业网站优化服务
  • 西安哪有学做淘宝网站上海热点新闻
  • 网站平台开发多少钱windows优化大师官方网站
  • 花店网站模板优化网站标题名词解释
  • 深圳网络公司网站灰色词seo推广
  • 广告设计公司税务筹划seo课程在哪培训好
  • 一个主机放多个网站win7优化大师官方免费下载
  • php网站开发教材培训心得体会万能模板
  • 大业工业设计公司专业的seo搜索引擎优化培训
  • 自学编程做点网站赚钱seo怎么读
  • 自建站有哪些站点神马推广
  • java门户网站开发框架搜索引擎哪个最好用
  • 七宝做网站公司抖音关键词优化排名
  • 网站建设与企业发展福州seo技巧培训