如何在listView中显示Text文件中的数据

时间:2011-12-15 21:26:09

标签: java android listview

我有一个纯文本文件,其中包含一些行,在每行的末尾我插入一个逗号(,)。我也可以阅读文本文件并在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只是向我显示单个项目中的所有行,不知道吗?

3 个答案:

答案 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方法,但这对我有用。