从原始文本文件中获取字符串数组?

时间:2012-01-07 13:50:42

标签: android string listview text

首先,lemme显示填充listview的字符串:

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

现在,问题是,是否有任何方法可以将项目引用到res / raw文件夹中的外部文本文件,而不是对这些项目进行硬编码?假设我在raw文件夹中有一个标题为titles.txt的文本文件。

2 个答案:

答案 0 :(得分:2)

是的,你可以做到

你应该读这样的文字

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时

答案 1 :(得分:0)

您可以在res / values下创建一个Array文件,在那里添加您的数组,并使用 ArrayAdapter.createFromResource 将其与ArrayAdapter相关联。 您应该提供上下文,要使用的数组以及项目的布局。

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填充listview!此代码将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