Урок 42. Список - ListView
Добавлено: 15 дек 2011, 03:00
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Код: Выделить всё
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ListView>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="OK" />
</LinearLayout>
таки да, после того как у списка указываешь вес = 1 получается то, что нужно, не очевидно однако.damager82 писал(а):Так вроде то, что нужно получается.
Похоже, что это баг, который пришел с какой-то новой версией Eclipse или ADT. У меня сейчас тоже не открывается и выдает такую ошибку.Volk65 писал(а):Пробую открыть двойным кликом simple_list_item_1.xml
Выдает такую ошибку:
Could not open the editor: Android XML Editor cannot process this input.
damager82 писал(а):Похоже, что это баг, который пришел с какой-то новой версией Eclipse или ADT. У меня сейчас тоже не открывается и выдает такую ошибку.Volk65 писал(а):Пробую открыть двойным кликом simple_list_item_1.xml
Выдает такую ошибку:
Could not open the editor: Android XML Editor cannot process this input.
Если очень надо, то можно этот файл через поиск найти в файловой системе компа, в папке android-sdk-windows/platforms
Это скорее недоработка чем баг, там не текстовый xml , а двоичный, так же как и вся библиотека android.jar.damager82 писал(а):
Похоже, что это баг, который пришел с какой-то новой версией Eclipse или ADT. У меня сейчас тоже не открывается и выдает такую ошибку.
Если очень надо, то можно этот файл через поиск найти в папке android-sdk-windows/platforms
Здравствуйте.яфпкк писал(а):таки да, после того как у списка указываешь вес = 1 получается то, что нужно, не очевидно однако.damager82 писал(а):Так вроде то, что нужно получается.
спасибо за помощь
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Staff list"
android:layout_gravity="center_horizontal">
</TextView>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/scroll">
<LinearLayout
android:id="@+id/linLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<ListView
android:id="@+id/lvMain"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
Window->General->Editors->File Associations ставим для *.xml двоичный редактор как Defaultdiron писал(а):подскажите, пожалуйста, а как правильно подключить данный плагин? Я его установил для эклипса, но ничего не изменилось. Как выдавалась ошибка при попытке открыть файл XML, так и выдается.
Конечно, в Android есть стандартные классы чтения/записи потоков(InputStreamReader например), ими можно легко считать текстовый файл, главное потом его правильно распарсить и выделить элементы и собрать их в коллекцию, а дальше уже заполнить ListView3Gern писал(а):можно ли содержимое тхт файла вывести в списке ListView?
Код: Выделить всё
ListView spisok = (ListView)findViewById(R.id.listView1);
String myText = null;
InputStream inputStream = getResources().openRawResource(R.raw.qwer);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1) {
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
myText = byteArrayOutputStream.toString("UTF-8");
}
catch (IOException e)
{}
Тогда напишите как у вас в txt расположены элементы списка, я думаю каждый элемент просто с новой строки, сейчас напишу примерно, как сделать..3Gern писал(а):k.chaiko со считыванием все получилось, а вот про распарсит не понял и не знаю как сделать, можете примеры с ней дать или помочь с кодом? ниже код для чтения файла
Код: Выделить всё
public List<String> createListFromFile(int idFile) {
BufferedReader inputStream = null;
try {
inputStream = new BufferedReader(new InputStreamReader(getResources().openRawResource(idFile)));
List<String> list = new ArrayList<String>();
String strLine;
while ((strLine = inputStream.readLine()) != null) {
list.add(strLine);
}
return list;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
спасибо вам, попробую все это дело вместе соединить.k.chaiko писал(а):P.S. вот накидал метод, возвращает вам коллекцию, из вашего текст файла, в метод передавайте id файла, и всё, ну и List<String> заполняете уже ListView..
Метод readLine считывает файл построчно, если элементы идут к примеру через запятую, то парсить сложнее, мой метод работает если элементы каждый раз с новой строки..
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal" >
<CheckedTextView
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center"
android:checkMark="?android:attr/textCheckMark"
android:text="CheckedTextView"
android:paddingLeft="6dip"
android:paddingRight="6dip"
/>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/Text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginRight="20dp"
android:text="TextView" >
</TextView>
<TextView
android:id="@+id/Text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginRight="20dp"
android:text="TextView"
/>
</LinearLayout>
</LinearLayout>
Код: Выделить всё
adapt = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked, catnames_jar);