2010-05-20 42 views
64

khi chỉnh sửa chuỗi trong XML, tôi cần thêm ngắt dòng. Và tôi muốn hỏi hình thức QUYỀN khi lập trình cho android là gì? Bởi vì <br> hoạt động nhưng ECLIPSE đánh dấu khu vực là có vấn đề. Nếu tôi kiểm tra các đề xuất Eclipse nói với tôi rằng tôi sẽ thêm một thẻ kết thúc </br> - NẾU tôi thêm rằng ngắt dòng biến mất ...Ngắt dòng ở định dạng XML?

Vì vậy, một công trình nhưng được đánh dấu là có vấn đề, các công trình khác không nhưng Eclipse nói với tôi ok ..

Tôi nên sử dụng biểu mẫu nào?

+3

Trên ghi chú bên: ** Không bao giờ ** sử dụng '
'. Giải thích: hầu hết các ngôn ngữ đánh dấu (đối với xml, html, v.v.) sử dụng '' để mở thẻ, ' 'để đóng thẻ và' 'là rỗng, do đó có ký hiệu thay thế' '. Vì vậy, '
' mở một thẻ, đó là logic mà IDE đã yêu cầu đóng bằng '
' nhưng vì thẻ br hầu như luôn trống nên bạn nên sử dụng ** '
' **. Nhưng dù sao câu hỏi là về Java, vì vậy '\ n' tốt hơn nhiều. Sử dụng html cho một textview hoạt động tốt nhưng tiêu thụ bộ nhớ tương đối nhiều. Chỉ sử dụng nó khi cần thiết, nếu bạn muốn một textview nhiều màu hoặc một cái gì đó như thế. –

+0

Xem câu trả lời của tôi ở đây: http: // stackoverflow.com/questions/18938403/how-to-preserve-line-break-in-xml-string-resources-in-android/31683548 # 31683548 – Jin

Trả lời

121

Sử dụng \n để ngắt dòng và \t nếu bạn muốn chèn tab.

Bạn cũng có thể sử dụng một số thẻ XML để định dạng cơ bản: <b> cho văn bản in đậm, <i> để in nghiêng và <u> cho văn bản được gạch dưới.

tùy chọn định dạng khác được trình bày trong bài viết này trên trang web của nhà phát triển Android:
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

+0

Liên kết trên đã chết, nhưng thông tin vẫn hữu ích, bạn có thể cập nhật không? –

3

Ngoài ra bạn có thể thêm <BR> thay vì \ n.

Và sau đó bạn có thể thêm văn bản vào TexView:

articleTextView.setText(Html.fromHtml(textForTextView)); 
1

Dưới đây là những gì tôi sử dụng khi tôi không có quyền truy cập vào các chuỗi nguồn, ví dụ để tải xuống HTML:

// replace newlines with <br> 
public static String replaceNewlinesWithBreaks(String source) { 
    return source != null ? source.replaceAll("(?:\n|\r\n)","<br>") : ""; 
} 

Đối với XML bạn có lẽ nên chỉnh sửa để thay thế bằng <br/> thay thế.

Ví dụ về việc sử dụng nó trong một hàm (ghé cảng bổ sung xóa do rõ ràng):

// remove HTML tags but preserve supported HTML text styling (if there is any) 
public static CharSequence getStyledTextFromHtml(String source) { 
    return android.text.Html.fromHtml(replaceNewlinesWithBreaks(source)); 
} 

... và một ví dụ nữa:

textView.setText(getStyledTextFromHtml(someString)); 
+0

Đẹp, làm việc tuyệt vời. Cảm ơn – sandeepmaaram

12

Nếu bạn đang đề cập đến res chuỗi, sử dụng CDATA với \ n.

<string name="about"> 
    <![CDATA[ 
Author: Sergio Abreu\n 
http://sites.sitesbr.net 
    ]]>   
</string> 
3

Hãy lưu ý: Tôi đã thấy bài viết khác mà nói &#xA; sẽ cung cấp cho bạn một dấu ngắt đoạn, trong đó kỳ quặc đủ các công trình trong Android xml String.xml tập tin, nhưng sẽ không hiển thị trong một thiết bị khi kiểm tra (không nghỉ giải lao tại tất cả hiển thị). Do đó, \n hiển thị trên cả hai.

Các vấn đề liên quan