У меня есть текстовый файл, состоящий из нескольких строк. В конце каждой строки я вставляю запятую (,). Я также могу читать текстовые файлы и устанавливать их в 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
просто показывает мне все строки в одном элементе, Любая идея?
ListItems= new String[]{DbLines};
даст вам массив из одного предмета!
DbLines.split(",")
может быть лучше ;-)
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) {
}
}
Вы также можете разделить, используя:
DbLines.append("\r\n"); //Splits by NL
Test 1
Test 2
Test 3
Это было более подходящим для моего кода и, возможно, для вас. Я считаю, что есть метод.lineseperator, но это работает для меня.