首先,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的文本文件。
答案 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