下划线TextView的
问题描述:
只是一个简单的问题: 你知道为什么我能做到这一点:下划线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));
文本没有下划线。
然而,如果我只是做:
pnrCode = (TextView)findViewById(R.id.pnr);
SpannableString pnrContent = new SpannableString("PNR: ");
pnrContent.setSpan(new UnderlineSpan(), 0, pnrContent.length(), 0);
pnrCode.setText(pnrContent);
的带下划线的文字。
我必须创建两个textview? 你知道另一种解决方案吗?
任何帮助表示赞赏;)
答
我要创建两个TextView的?
号
pnrContent + BookingSettings.getBookingSegment().substring(0, 6)
大概是要给你一个String
回来,因为我相信+
运营商将双方转换为String
对象,然后进行拼接。因此,你将失去你的格式。
而是使用new SpannableString("PNR: "+ BookingSettings.getBookingSegment().substring(0, 6));
,并根据需要设置UnderlineSpan
的长度。
感谢您的回答! 但实际上,我只想强调“PNR:”!你的解决方案强调整个字符串,不是? – 2012-01-28 17:58:13
要强调“PNR:”,您应该以这种方式仅为前4个字符设置范围:pnrContent.setSpan(new UnderlineSpan(),0,4,0); – lexmiir 2012-01-28 18:11:00
谢谢lexmirr,谢谢CommonsWare! – 2012-01-28 18:16:20