我有一个纯文本文件,其中包含一些行,在每行的末尾我插入一个逗号(,)。我也可以阅读文本文件并在ListView
上设置,但我不知道如何在ListView
中用逗号结尾的行创建新项目。 (我的意思是在单个项目中显示一行。)
我的文字文件是这样的:
Test 1 ,
Test 2 ,
Test 3 ,
这是我的ListActity
:
public class MainMenuActivity extends ListActivity {
public String[] ListItems = new String[]{};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
try {
Resources ResFiles = getResources();
InputStream ReadDbFile = ResFiles.openRawResource(R.raw.test);
byte[] Bytes = new byte[ReadDbFile.available()];
ReadDbFile.read(Bytes);
String DbLines = new String(Bytes);
ListItems= new String[]{DbLines};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.main_list, R.id.ListText, ListItems);
setListAdapter(adapter);
} catch (Exception e) {
}
}
这个ListView
只是向我显示单个项目中的所有行,不知道吗?
答案 0 :(得分:4)
ListItems= new String[]{DbLines};
将为您提供一个项目数组!
DbLines.split(",")
可能会更好; - )
答案 1 :(得分:1)
String DbLines = new String(Bytes); // One string containing all the file
ListItems= new String[]{DbLines}; // an array containing the previous string
为什么期望ListView显示多个项目?尝试将文件内容拆分为字符串数组,如下所示:
ListItems = DbLines.split(",");
最后:
public class MainMenuActivity extends ListActivity {
public String[] ListItems = new String[]{};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
try {
Resources ResFiles = getResources();
InputStream ReadDbFile = ResFiles.openRawResource(R.raw.test);
byte[] Bytes = new byte[ReadDbFile.available()];
ReadDbFile.read(Bytes);
String DbLines = new String(Bytes);
ListItems = DbLines.split(","); // Split the content by ","
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.main_list, R.id.ListText, ListItems);
setListAdapter(adapter);
} catch (Exception e) {
}
}
答案 2 :(得分:0)
您还可以使用以下方式进行拆分:
DbLines.append("\r\n"); //Splits by NL
Test 1
Test 2
Test 3
这更适合我的代码,也可能适用于您的代码。我相信有一种.lineseperator方法,但这对我有用。