Получить массив строк из необработанного текстового файла? - PullRequest
0 голосов
/ 07 января 2012

Во-первых, давайте покажем мою строку, которая заполняет представление списка:

static final String[] title = new String[] {
    "Temaki Sushi", "Oyakodon", "Okonomiyaki", "Tofu Dango", "Oden",
    "Nikujaga", "Yellowtail Teriyaki", "Tendon", "Tonjiru", "Sukiyaki",
    };

Теперь вопрос заключается не в том, чтобы жестко кодировать эти элементы, есть ли способ ссылки на элементы во внешнем текстовом файле впапка res / raw?Допустим, у меня есть текстовый файл с заголовком title.txt в папке raw.

Ответы [ 2 ]

2 голосов
/ 07 января 2012

да, вы можете сделать это

вы должны прочитать текст как этот

private String readTitlesRaw(){
    InputStream stream = Context.getResources().openRawResource(R.raw.titles))

    Writer writer = new StringWriter();
    char[] buffer = new char[10240];
    try {
        Reader reader = new BufferedReader(
        new InputStreamReader(stream, "UTF-8"));
        int n;
        while ((n = reader.read(buffer)) != -1) {
            writer.write(buffer, 0, n);
        }
    } finally {
        stream.close();
    }
    return writer.toString();
}

и затем разбить его на массив, как вам нравится, что-то вроде этого должно работать

String[] titles=readTitlesRaw().split("SPLITER");

когда вы пишете SPLITER между каждым заголовком

0 голосов
/ 07 января 2012

Вы можете создать файл Array в разделе res / values, добавить туда свой массив и связать его с ArrayAdapter, используя ArrayAdapter.createFromResource . Вы должны предоставить контекст, массив, который вы хотите использовать, и расположение элементов.

Пример Arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="EventArray">
        <item >Data</item>
        <item >Address</item>
        <item >Your items...</item>
    </string-array>    
</resources>

Затем заполните свой просмотр списка этим ArrayAdapter! Этот код помещает содержимое EventArray в ваш список!

 list = (ListView) findViewById(R.id.list);  //get your listview
 arrayadapter = ArrayAdapter.createFromResource(this, R.array.EventArray, R.layout.YourListviewLayout); // create the arrayadapter from EventArray using YourListviewLayout.
 list.setAdapter(arrayadapter);

Ссылка на ArrayAdapter.createFromResource : http://developer.android.com/reference/android/widget/ArrayAdapter.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...