只是个简单的问题:
你知道我为什么要这么做吗:

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));

文本没有下划线。
然而,如果我这样做:
  pnrCode = (TextView)findViewById(R.id.pnr);
            SpannableString pnrContent = new SpannableString("PNR: ");
            pnrContent.setSpan(new UnderlineSpan(), 0, pnrContent.length(), 0);
            pnrCode.setText(pnrContent);

文本有下划线。
我必须创建两个文本视图?
你知道另一个解决办法吗?
感谢您的帮助;)

最佳答案

我必须创建两个文本视图?
不。
pnrContent + BookingSettings.getBookingSegment().substring(0, 6)可能会返回一个String,因为我相信+操作符会将两边转换为String对象,然后执行连接。因此,您将丢失格式。
相反,使用new SpannableString("PNR: "+ BookingSettings.getBookingSegment().substring(0, 6));,并根据需要设置UnderlineSpan的长度。

07-28 06:12