Как отобразить данные из текстового файла в listView

1

У меня есть текстовый файл, состоящий из нескольких строк. В конце каждой строки я вставляю запятую (,). Я также могу читать текстовые файлы и устанавливать их в 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 просто показывает мне все строки в одном элементе, Любая идея?

Теги:
listview

3 ответа

4
Лучший ответ

ListItems= new String[]{DbLines}; даст вам массив из одного предмета!

DbLines.split(",") может быть лучше ;-)

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) {
    }
}
0

Вы также можете разделить, используя:

DbLines.append("\r\n"); //Splits by NL

Test 1 
Test 2
Test 3 

Это было более подходящим для моего кода и, возможно, для вас. Я считаю, что есть метод.lineseperator, но это работает для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню