2

只是一个简单的问题:你知道为什么我可以这样做:

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 吗?你知道另一种解决方案吗?

任何帮助表示赞赏;)

4

1 回答 1

7

我必须创建两个 textview 吗?

不。

pnrContent + BookingSettings.getBookingSegment().substring(0, 6)可能会给你一个String支持,因为我相信+运算符会将双方都转换为String对象,然后执行连接。因此,您将丢失格式。

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

于 2012-01-28T16:58:09.863 回答