下划线Textview

Joh*_*ith 2 android underline textview

只是一个简单的问题:你知道为什么我能做到这一点:

pnrCode = (TextView)findViewById(R.id.pnr);
        SpannableString pnrContent = new SpannableString("PNR: ");
        pnrContent.setSpan(new UnderlineSpan(), 0, pnrContent.length(), 0);
        pnrCode.setText(pnrContent + BookingSettings.getBookingSegment().substring(0, 6));
Run Code Online (Sandbox Code Playgroud)

文字没有加下划线.

然而,如果我只这样做:

  pnrCode = (TextView)findViewById(R.id.pnr);
            SpannableString pnrContent = new SpannableString("PNR: ");
            pnrContent.setSpan(new UnderlineSpan(), 0, pnrContent.length(), 0);
            pnrCode.setText(pnrContent);
Run Code Online (Sandbox Code Playgroud)

案文标有下划线.

我要创建两个textview?你知道另一个解决方案吗?

任何帮助表示赞赏;)

Com*_*are 7

我要创建两个textview?

没有.

pnrContent + BookingSettings.getBookingSegment().substring(0, 6)可能会给你一个String回馈,因为我相信+操作员会将双方转换为String对象,然后执行连接.因此,您将丢失格式.

相反,使用new SpannableString("PNR: "+ BookingSettings.getBookingSegment().substring(0, 6));,并UnderlineSpan根据需要设置长度.

  • 要仅为"PNR:"加下划线,您应该以这种方式仅为前4个字符设置范围:pnrContent.setSpan(new UnderlineSpan(),0,4,0); (2认同)