Как редактировать многострочные строки в строках Android.xml-файл?

У меня есть несколько случаев, когда мои строка в строках.xml довольно длинный и имеет несколько строк выполнена с n.

редактирование, однако, довольно раздражает, так как это длинная строка в Eclipse.

есть ли лучший способ отредактировать это, так что похоже, что он будет представлен позже в textview, т. е. разрывы, а разрывы строк и текст в многострочный режим редактирования?

4 ответов


два варианта:

1. Используй источник, Люк!--10-->

XML позволяет буквальные символы новой строки в строках:

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

вам просто нужно отредактировать XML-код вместо того, чтобы использовать отличный графический интерфейс Eclipse

2. Использовать фактические текстовые файлы

все, что внутри assets каталог доступен в виде входного потока из кода приложения.

вы можете получить доступ к этим файловым входным потокам активов с помощью AssetManager.open(), a AssetManager экземпляр Resources.getAssets(), и... вы знаете, что, вот Java-типичный чрезвычайно подробный код для такой простой задачи:

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();
}

использование Scanner очевидно, ярлык m (


конечно, вы можете поместить новые строки в XML, но это не даст вам разрывы строк. В строки.в XML, как и во всех XML-файлах, новые строки в содержимом строки преобразуются в пробелы. Поэтому декларация

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

будет отображаться как

eggs and spam

в TextView. К счастью, есть простой способ иметь новые строки в источнике и в выводе-используйте \n для предполагаемых выходных новых строк и избегайте реальных новых строк в источник. Вышеуказанное заявление будет

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

, который отображается как

eggs
and
spam

вы можете легко использовать "" и написать любое слово, даже из других языков с ошибок:

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


для тех, кто ищет рабочее решение, которое позволяет содержимому строки XML иметь несколько строк для ремонтопригодности и отображать эти несколько строк в выходах TextView, просто поместите \n на начало новой строки... не в конце предыдущей строки. Как уже упоминалось, одна или несколько новых строк в содержимом ресурса XML преобразуются в одно пустое пространство. Ведущие, конечные и несколько пустых пространств игнорируются. Идея состоит в том, чтобы поставить это пустое место в конце предыдущей строки и поставить \n в начале следующей строки контента. Вот пример строки XML:

<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>

это отображается в виде текста:

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.