Chuỗi tài nguyên dòng mới / n không thể?


167

Dường như không thể thêm một dòng mới /nvào chuỗi tài nguyên XML. Có cách nào khác để làm điều này?


12
ý bạn là bạn có một ví dụ không?
Keith

1
Nó được cho là \ n. Làm việc cho tôi
akash89

1
@anandtripathi, tôi quay lại chỉnh sửa của bạn vì nó làm cho câu trả lời trở nên vô nghĩa. OP đã sử dụng sai \ n thay vì / n, đó là bản chất của câu hỏi. Chúng ta không nên sửa mã của OP, mà chỉ là phần thân câu hỏi, cho raisons rõ ràng
Vega

Câu trả lời:


382

sử dụng một dấu gạch chéo không phải là một chuyển tiếp. \n

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello\nWorld!</string>
</resources>

Ngoài ra, nếu bạn có kế hoạch sử dụng chuỗi dưới dạng HTML, bạn có thể sử dụng &lt;br /&gt;để ngắt dòng ( <br />)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello&lt;br /&gt;World!</string>
</resources>

3
Trong định dạng HTML, chỉ có định dạng HTML, nó chấp nhận, vì vậy & lt; br / & gt; là giải pháp phù hợp được cung cấp
akash89

Tôi muốn đề cập đến một cái gì đó cho những người như tôi truy cập trang này vì Android Studio. Trong AS khi bạn trích xuất một chuỗi bằng công cụ IDE, nó sẽ tự động loại bỏ các ký tự dòng mới. Bạn chỉ có thể tự thêm chúng trở lại và nó sẽ hoạt động tốt. Không chắc chắn tại sao nó làm điều này.
George Rautenbach

\ n doest làm việc cho tôi, không thay đổi dòng không có chuỗi có / n. Bạn có biết tại sao ? không nhấn enter, điều đó nói trong các câu trả lời khác
Thelouras

52

Tôi biết đây là câu hỏi khá cũ nhưng nó đứng đầu danh sách khi tôi tìm kiếm. Vì vậy, tôi muốn cập nhật với một phương pháp khác.

Trong tệp String.xml, bạn có thể thực hiện \ n hoặc bạn chỉ cần nhấn enter:

<string name="Your string name" > This is your string.

   This is the second line of your string.\n\n Third line of your string.</string>

Điều này sẽ dẫn đến kết quả như sau trên TextView của bạn:

Đây là chuỗi của bạn.

Đây là dòng thứ hai trong chuỗi của bạn.

Dòng thứ ba của chuỗi của bạn.

Điều này là do có hai trả về giữa khai báo đầu tiên của chuỗi và dòng mới. Tôi cũng đã thêm \ n cho nó rõ ràng, vì có thể được sử dụng. Tôi thích sử dụng trả về vận chuyển trong xml để có thể xem danh sách hoặc bất kỳ chuỗi đa dòng nào tôi có. Theo quan điểm của tôi.


3
Ah điều đó thật thú vị. cám ơn vì đã chia sẻ. Ngoài ra, tôi cảm thấy như một thằng ngốc khi hỏi câu hỏi này, nhưng có vẻ như nó đã giúp được rất nhiều người. CƯỜI LỚN!!
Andi Jay

4
Hai dòng đột phá liên tiếp được xử lý bởi (ít nhất là các phiên bản hiện tại của) như một không gian duy nhất. github.com/paour/StringResourceTest
Pierre-Luc Paour

19

Đây là một câu hỏi cũ, nhưng tôi thấy rằng khi bạn tạo một chuỗi như thế này:

<string name="newline_test">My
New line test</string>

Đầu ra trong ứng dụng của bạn sẽ như thế này (không có dòng mới)

My New line test

Khi bạn đặt chuỗi trong dấu ngoặc kép

<string name="newline_test">"My
New line test"</string>

dòng mới sẽ xuất hiện:

My 
New line test

1
Hoạt động cho tôi nhưng chỉ trong trường hợp, hãy nhớ khi bạn xác định tài nguyên như trên, bạn nên tránh sử dụng Html.fromHtml. Cảm ơn
Ahmad Reza Enshaee

Gói chuỗi multiline trong dấu ngoặc kép hoạt động hoàn hảo. Tốt hơn nhiều so với việc đặt \nở mọi nơi (có thể nhanh chóng trở nên khó đọc và khó hiểu). Không cần phải nói, nhưng chỉ trong trường hợp: nếu bạn muốn có một dấu \"
ngoặc kép

4

Nếu bạn đặt "\ n" trong một chuỗi trong tệp xml, thì đó là "\ n"

Tôi cũng vậy :

text = text.Replace("\\\n", "\n");   ( text is taken from resX file) 

Và sau đó tôi nhận được một dòng nhảy trên màn hình


3
Chỉ xảy ra khi bạn thêm chuỗi với trình hướng dẫn. Nếu bạn chỉnh sửa xml, nó sẽ hoạt động
Daniel Argüelles

Tôi cũng mắc lỗi này. Cảm ơn lời khuyên của bạn. Nhưng tôi chỉ sửa tất cả các lần xuất hiện của chính mình.
Kanat

Không phải là một giải pháp tốt. Bạn nên lấy văn bản từ các tài nguyên và sử dụng nó trực tiếp. Điều gì nếu bạn phải xử lý các nhân vật đặc biệt hơn? Bạn sẽ viết thêm mã cho họ? Điều gì nếu bạn có trường hợp cạnh?
dephinera

3

Khi sử dụng trình chỉnh sửa bản dịch trong Android Studio, chỉ cần nhấp vào biểu tượng ở bên phải (hoặc sử dụng Shift-Enter) và sau đó thêm ngắt dòng bằng cách sử dụng return. Điều này sẽ chèn \ n chính xác trong chuỗi tệp được bản địa hóa.


Cảm ơn rất nhiều cho câu trả lời này.
Đơn giản

2
Không có biểu tượng ở bên phải và Shift-Enter nhảy đến văn bản tiếp theo ở trên, ít nhất là trên Ubuntu.
Tibor Nagy

3

Trong phiên bản mới nhất của studio Android, "\ n" sẽ được in giống như ở đó trừ khi toàn bộ chuỗi đó nằm trong dấu nháy đơn

Ví dụ:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">"Hello\nWorld!"</string>
</resources>

Làm thế nào tôi có thể thực hiện hai dòng phá vỡ?
jvargas

1

Rất đơn giản, bạn chỉ cần đặt
\ n bất cứ nơi nào bạn muốn ngắt dòng trong tài nguyên chuỗi của mình.

Ví dụ

String s = my string resource have \n line break here;


Làm thế nào tôi có thể thực hiện hai dòng phá vỡ?
jvargas

1

không đặt không gian sau \ n, nếu không, nó sẽ không hoạt động. Tôi không biết lý do, nhưng thủ thuật này có hiệu quả với tôi khá tốt.


0

Tôi muốn mở rộng về câu trả lời này . Ý nghĩa của chúng là biểu tượng này:

Nút cửa sổ biên tập

Nó mở một "cửa sổ soạn thảo thực" thay vì hộp văn bản tính năng giới hạn trong tổng quan lớn. Trong cửa sổ soạn thảo đó, các ký tự đặc biệt, ngắt dòng, vv được cho phép và chuyển đổi thành "mã" xml chính xác khi được lưu


0

Tôi chỉ phải đối mặt với vấn đề này. đã không làm việc TextViewvới các tham số ràng buộc. Thêm android:lines="2"dường như để sửa lỗi này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.