You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android项目中Java实现指定文本部分加粗的方法

Android Java实现指定文本部分加粗的方法

嘿,我来给你一步步解决这个问题——在你的字符串pars里把"How Stock Market works ?"单独加粗,其余文本保持正常,用Android的Java代码实现其实很简单,核心是用SpannableString来给局部文本设置样式,这也是Android里处理富文本的常用方案。

直接结合你现有的代码来修改,完整实现如下:

public class second extends AppCompatActivity { 
    TextView textView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_second); 
        textView = (TextView)findViewById(R.id.Text1); 

        String pars = "How Stock Market works ?\n" + "They ..."; // 你的完整字符串内容
        String targetBoldText = "How Stock Market works ?";
        
        // 找到目标文本在pars中的起始和结束索引
        int startIndex = pars.indexOf(targetBoldText);
        int endIndex = startIndex + targetBoldText.length();
        
        // 创建SpannableString对象,用于处理富文本样式
        SpannableString spannableString = new SpannableString(pars);
        
        // 判断目标文本是否存在,避免索引越界异常
        if (startIndex != -1) {
            // 给指定区间的文本设置加粗样式
            spannableString.setSpan(new StyleSpan(Typeface.BOLD), 
                                    startIndex, 
                                    endIndex, 
                                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
        
        // 把处理后的富文本设置给TextView
        textView.setText(spannableString);
    }
}

关键细节解释:

  • SpannableString:这是Android提供的富文本处理类,允许我们对字符串的特定片段单独设置样式,完全不会影响其他文本的显示。
  • StyleSpan(Typeface.BOLD):专门用于设置文本加粗的Span对象,传入Typeface.BOLD就代表启用加粗效果。
  • setSpan的最后一个参数:Spannable.SPAN_EXCLUSIVE_EXCLUSIVE表示样式仅作用于startIndex到endIndex之间的文本,不会扩展到边界外的内容,是日常开发中最常用的选项。
  • 索引判断:加startIndex != -1的判断是为了防止目标文本不在pars里时出现索引越界崩溃,让代码更健壮。

这样运行后,TextView里的"How Stock Market works ?"就会变成加粗样式,其余文本保持正常显示啦~

内容的提问来源于stack exchange,提问作者Dee Boxer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:24:48