2011-10-22 26 views
11

Tôi có một vài trường hợp chuỗi của tôi trong strings.xml là khá dài và có nhiều dòng thực hiện với \n.Làm thế nào để chỉnh sửa chuỗi đa dòng trong tệp strings.xml Android?

Editing tuy nhiên là khá khó chịu vì nó là một dòng dài trong Eclipse.

Có cách nào tốt hơn để chỉnh sửa điều này vì vậy có vẻ như nó sẽ được trình bày sau trong chế độ xem văn bản, tức là ngắt dòng làm ngắt dòng và văn bản ở chế độ chỉnh sửa nhiều dòng?

+2

Tôi không nghĩ rằng bạn có thể làm điều đó. Nhưng nếu bạn đã đi xuống một dòng khi mỗi '\ n' được sử dụng, nó sẽ trông như nó cần. Ngoài ra, bạn có thể sử dụng 'control + i' trong nhật thực để sắp xếp văn bản. – Jong

Trả lời

13

Có hai khả năng:

1. Sử dụng mã nguồn, Luke

XML cho phép ký tự xuống dòng chữ trong chuỗi:

<string name="breakfast">eggs 
and 
spam</string> 

Bạn chỉ phải chỉnh sửa mã XML thay vì sử dụng tiện lợi Eclipse GUI

2. Sử dụng các tệp văn bản thực tế

Mọi thứ bên trong thư mục assets đều có sẵn dưới dạng luồng đầu vào từ mã ứng dụng.

Bạn có thể truy cập vào những con suối tập tin đầu vào của tài sản với AssetManager.open(), một trường hợp AssetManager với Resources.getAssets(), và ... bạn biết những gì, đây là Java điển hình đang vô cùng tiết cho một nhiệm vụ đơn giản như vậy:

View view; 

//before calling the following, get your main 
//View from somewhere and assign it to "view" 

String getAsset(String fileName) throws IOException { 
    AssetManager am = view.getContext().getResources().getAssets(); 
    InputStream is = am.open(fileName, AssetManager.ACCESS_BUFFER); 
    return new Scanner(is).useDelimiter("\\Z").next(); 
} 

sự sử dụng Scanneris obviously a shortcut m (

+0

+1, đặc biệt là đối với mẹo nội dung. Hoạt động tốt cho mẫu email của tôi. Btw, nếu sử dụng ổi, bạn có thể đọc một nội dung thành chuỗi bằng cách sử dụng 'CharStreams.toString (new InputStreamReader (am.open (tên tệp), Charsets.UTF_8))'. – Jonik

+0

Cái đầu tiên chỉ hoạt động nếu bạn đặt toàn bộ chuỗi trong dấu ngoặc kép – user3533716

10

chắc chắn, bạn có thể đặt dòng mới vào XML, nhưng điều đó sẽ không cung cấp cho bạn ngắt dòng. trong strings.xml, như trong tất cả các file XML, Newlines in string content are converted to spaces. Do đó, việc kê khai

<string name="breakfast">eggs 
and 
spam</string> 

sẽ được render thành

eggs and spam 

trong một TextView. May mắn thay, có một cách đơn giản để có các dòng mới trong nguồn và ở đầu ra - sử dụng \ n cho các dòng đầu ra dự định của bạn và thoát khỏi các dòng mới thực trong nguồn. Việc kê khai trên trở thành

<string name="breakfast">eggs\n 
and\n 
spam</string> 

được trả lại như

eggs 
and 
spam 
+0

Bạn không chắc chắn dấu gạch chéo thêm ở cuối \ n \ là gì? Để sử dụng dòng trắng bổ sung: \ n \ n – Meanman

+0

Các dòng mới trong xml sẽ cho bạn ngắt dòng nếu bạn đặt toàn bộ chuỗi trong dấu ngoặc kép. Tuy nhiên, sau đó thụt đầu dòng xml sẽ cung cấp thêm dấu cách trước mỗi hàng. – user3533716

2

Bạn có thể dễ dàng sử dụng "" và viết bất kỳ từ nào và thậm chí từ các ngôn ngữ khác với lỗi out:

<string name="Hello">"Hello world! سلام دنیا!" </string>

0

Đối bất kỳ ai tìm kiếm giải pháp làm việc cho phép nội dung Chuỗi XML có nhiều dòng để duy trì và hiển thị nhiều dòng trong TextV kết quả đầu ra mới, chỉ cần đặt một số \n tại số bắt đầu của dòng mới ...không phải ở cuối dòng trước đó. Như đã đề cập, một hoặc nhiều dòng mới trong nội dung tài nguyên XML được chuyển đổi thành một không gian trống duy nhất. Hàng đầu, dấu và nhiều không gian trống được bỏ qua. Ý tưởng là đặt khoảng trống đó vào cuối dòng trước đó và đặt \n ở đầu dòng nội dung tiếp theo. Dưới đây là một XML Chuỗi ví dụ:

<string name="myString"> 
    This is a sentence on line one. 
    \nThis is a sentence on line two. 
    \nThis is a partial sentence on line three of the XML 
    that will be continued on line four of the XML but will be rendered completely on line three of the TextView. 

    \n\nThis is a sentence on line five that skips an extra line. 
</string> 

này được thực hiện tại các văn bản Xem như:

This is a sentence on line one. 
This is a sentence on line two. 
This is a partial sentence on line three of the XML that will be continued on line four of the XML but will be rendered completely on line three of the TextView. 

This is a sentence on line five that skips an extra line. 
Các vấn đề liên quan