Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
#1

Как создать список (ListView) с динамическим количеством передаваемых View? - Программирование Android

09.02.2016, 19:51. Просмотров 594. Ответов 12
Метки нет (Все метки)

Доброго времени суток!
Такая проблема:
Требуется создать список к примеру через SimpleAdapter в котором неизвестно сколько будет View:
т.к. view будут создаваться программно и их неизвестно сколько я не знаю как их определить в адаптере, там требуется массив id указывающих на view (new int[])
Java
1
2
3
      SimpleAdapter adapter = new SimpleAdapter(activity, mCatList,
                R.id.listView, new String[]{Name1,Name2,Name3....},
                new int[]{R.id.view1, R.id.view2.....}); //(Как сюда передать View созданные программно или нужно использовать какие то другие конструкторы списков? )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 19:51     Как создать список (ListView) с динамическим количеством передаваемых View?
Посмотрите здесь:
Android Как переместить фокус на определённое view в listView
Как создать spinner внутри recycler view? Android
Создание View элементов из кода и размещение их в listview Android
Добавлене View элементов в ListView в зависимости от текста Android
Android Navigation View and Toolbar? Внешный вид ListView
Android ListView с изменяющимся количеством элементов
Как изменять item listview не перерисовывая весь список? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
10.02.2016, 08:12     Как создать список (ListView) с динамическим количеством передаваемых View? #2
Элементарно. Переопределяйте bindView и в нем меняйте видимость для вью. Или посылайте разные layout_item.
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
10.02.2016, 12:35  [ТС]     Как создать список (ListView) с динамическим количеством передаваемых View? #3
А поподробней можно? или ссылку на пример использования bindview

Добавлено через 12 минут
То есть я хочу реализовать adapter без использования layout файлов
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
10.02.2016, 12:43     Как создать список (ListView) с динамическим количеством передаваемых View? #4
http://www.gustekdev.com/2013/05/cus...y-not-use.html
http://www.vogella.com/tutorials/And...w/article.html
http://developer.alexanderklimov.ru/...rayadapter.php
http://habrahabr.ru/post/133575/
http://dajver.blogspot.ru/2013/03/ar...-listview.html

Добавлено через 41 секунду
как это "без использования layout файлов"?

Добавлено через 2 минуты
Если известны все варианты, то делаете столько же layout.
Если view однотипные, то добавляете их в цикле.
А иначе как еще?
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
10.02.2016, 13:02  [ТС]     Как создать список (ListView) с динамическим количеством передаваемых View? #5
Вот иммено что неизвестно количество View элементов. В этом то и вопрос :
Как заменить:
Java
1
2
3
4
5
6
7
8
 <TextView
            android:id="@+id/text1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="This is Title"
            android:textSize="25sp" />
 
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int {R.id.text1})
На :
Java
1
2
TextView tv=new TextView(this);
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int { tv })
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,706
Завершенные тесты: 1
10.02.2016, 13:21     Как создать список (ListView) с динамическим количеством передаваемых View? #6
то есть существует некое ViewGroup или лаяут, у которого внутри какое-то количество TextView, правильно?

если так и есть то что мешает написать что-то типа
view.getChildCount();
а потом в цикле пройтись по этим чайлдам и собрать из них массив id-шек
view.getChildAt(int pos).getId();
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
10.02.2016, 13:38  [ТС]     Как создать список (ListView) с динамическим количеством передаваемых View? #7
Нет не так.
Есть некое количество View(TextView,ImageView,Button) в базе данных,
их нужно реализовать в списке.
Поэтому я не могу использовать шаблоны xml.
Вот я и пытаюсь запихнуть в adapter созданные программно view(TextView tv=new TextView(this));
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,706
Завершенные тесты: 1
10.02.2016, 13:51     Как создать список (ListView) с динамическим количеством передаваемых View? #8
то есть в конце это должно выглядеть так - кнопки, вьюшки, текстовые поля расположены в виде вертикального списка?

почему бы не сделать просто ScrollView?
внутрь него положить вертикальный LinearLayout, а потом программно напихать туда все эти элементы из базы
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
10.02.2016, 13:58  [ТС]     Как создать список (ListView) с динамическим количеством передаваемых View? #9
Это вариант ,но не хотелось бы писать новые велосипеды.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,706
Завершенные тесты: 1
10.02.2016, 14:03     Как создать список (ListView) с динамическим количеством передаваемых View? #10
ты задаешь элементарнейшие вопросы, которые у многих новичков не вызвали бы никаких затруднений в реализации, но уже рассуждаешь про велосипеды
как-то не клеится все это в кучу
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
10.02.2016, 14:35  [ТС]     Как создать список (ListView) с динамическим количеством передаваемых View? #11
потому что в программировании я давно,а с андроидом работаю не давно и могу заглянуть вперед и сделать выводы

Добавлено через 12 минут
И на мои вопросы "новичков" почему то ты не можешь ответить
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
10.02.2016, 15:06     Как создать список (ListView) с динамическим количеством передаваемых View? #12
Мне кажется ТС заблудился, поможем же ему обрести себя.
Покажи нам пару вариантов экранов, иначе будем гадать месяцами.
Что за БД такая, где "есть некое количество View", речь о sqlite?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2016, 15:55     Как создать список (ListView) с динамическим количеством передаваемых View?
Еще ссылки по теме:
Как создать ListView с двумя TextView и работать с ними Android
Android Your content must have a ListView whose id attribute is 'android.R.id.list' - как правильно создать адаптор ?
Android В чем разница (View view) и (View v)
Android Не отображается список ListView
Список ListView из Fragment Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Andrey345
0 / 0 / 0
Регистрация: 09.02.2016
Сообщений: 7
10.02.2016, 15:55  [ТС]     Как создать список (ListView) с динамическим количеством передаваемых View? #13
Да sqlite.
Имееться таблица :
id type
1 text
2 Image
3 button
4 text
...
Это вьюхи одного элемента списка.
Далее цикл for (по этим записям БД)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
{switch (type){
case "image":
ImageView iv =new ImageView(this);
//Что то типо list.add(iv);
break;
case "text":
TextView tv =new TextView(this);
//Что то типо list.add(tv);
break;
case "button":
Button bt =new Button(this);
//Что то типо list.add(bt);
break;
}
}
В итоге получаем к примеру список:
---------------------------------------------------------------------------------------
 
TextView(id=1)
                                        Button(id=3)                 ImageView(id=2)
TextView(id=4)
---------------------------------------------------------------------------------------
 
TextView(id=1)
                                        Button(id=3)                 ImageView(id=2)
TextView(id=4)
---------------------------------------------------------------------------------------
 
TextView(id=1)
                                        Button(id=3)                 ImageView(id=2)
TextView(id=4)
---------------------------------------------------------------------------------------
Естественно с разными значениями(Для этого есть другая таблица)

Добавлено через 14 минут
Из ссылки что ты мне кинул http://www.gustekdev.com/2013/05/cus...y-not-use.html
Есть что то по этой части :
No xml version
If You choose to create view in Java instead of defining it in xml Your newView method will be a bit more complex, but You don't need inflater instance.
For example if Your list will have only one text value to display it could look like this.

public class CustomCursorAdapter extends CursorAdapter {
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
TextView content = new TextView(context);
content.setTag("content");
return content;
}
Yandex
Объявления
10.02.2016, 15:55     Как создать список (ListView) с динамическим количеством передаваемых View?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru