一个简单的问题: 你知道为什么我能做到这一点:
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);
文字有下划线。
我要创建两个textview? 你知道另一个解决方案吗?
感谢任何帮助;)
答案 0 :(得分:7)
我要创建两个textview?
没有
pnrContent + BookingSettings.getBookingSegment().substring(0, 6)
可能会给你一个String
,因为我相信+
运算符会将双方转换为String
个对象,然后执行连接。因此,您将丢失格式。
相反,请使用new SpannableString("PNR: "+ BookingSettings.getBookingSegment().substring(0, 6));
,并根据需要设置UnderlineSpan
的长度。