Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/58: Рейтинг темы: голосов - 58, средняя оценка - 4.71
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587

Как добавить в ListView subitem

06.11.2012, 16:06. Показов 11546. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть компонент ListView, при его добавлении в активити он показывает список:
Item1
subitem1

ну и т.д. Как добавить эти самые subitem? Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2012, 16:06
Ответы с готовыми решениями:

ListView SubItem
Всем привет! Расскажите пожалуйста как заполнять SubItem в виджете ListView. Мне нужно к обычному Item, который реализован вот так: ...

Не выводится SubItem в ListView
Приветствую. Такая вот проблема у меня образовалась. Стряпал с некой помощью вот такой адаптер (но сам понимаю что он слишком...

Как добавить subitems в listview
У меня есть listview, список имён например. Как мне добавить subitem в listview.

12
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.11.2012, 16:10
может ExpandableListView?
0
-6 / 3 / 0
Регистрация: 21.09.2012
Сообщений: 80
06.11.2012, 16:14
вот мой робочий пример как заполнять листвив з бази даних:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
ArrayList<String> titles =new ArrayList<String>();
        ListView ollmess=(ListView)findViewById(R.id.ollmess_list);
        helpDB= new FOhelpDB(this);
        db=helpDB.getReadableDatabase();
        Cursor c=db.query("events", null, null, null, null, null, null);
        if(c.moveToFirst()){
            do{
            titles.add(c.getString(c.getColumnIndex("title")));                     }
            while(c.moveToNext());
        }
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, titles);            
        ollmess.setAdapter(adapter);
здесь titles может бить просто стринговий масив, тойсть String[] titles={"sdfsd","sdfsdfsd","fghgffg"};

Добавлено через 1 минуту
Цитата Сообщение от RosPC Посмотреть сообщение
вот мой робочий пример как заполнять листвив з бази даних:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
ArrayList<String> titles =new ArrayList<String>();
        ListView ollmess=(ListView)findViewById(R.id.ollmess_list);
        helpDB= new FOhelpDB(this);
        db=helpDB.getReadableDatabase();
        Cursor c=db.query("events", null, null, null, null, null, null);
        if(c.moveToFirst()){
            do{
            titles.add(c.getString(c.getColumnIndex("title")));                     }
            while(c.moveToNext());
        }
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, titles);            
        ollmess.setAdapter(adapter);
здесь titles может бить просто стринговий масив, тойсть String[] titles={"sdfsd","sdfsdfsd","fghgffg"};
а если говорить про дочерние елементы то ExpandableListView!!!
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
06.11.2012, 16:14  [ТС]
Вижу в листвью подитемы. Они бы мне сгодились для комментария
Миниатюры
Как добавить в ListView subitem  
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
06.11.2012, 16:17  [ТС]
Т.е. как в PreferencesActivity не получиться смудрить в ListView?
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 16:27
Сложный вариант. ListView можно сделать свой какой нужно переопределив SimpleAdapter. Чуть легче
Java
1
2
3
4
5
6
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();  
   SimpleAdapter m= new SimpleAdapter(this,   
                                                list,
                                                R.layout.listitem, 
                                                new String[] {"Item1", "subitem1"},   
                                                new int[] {R.id.Item1,R.id.subitem1});
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
        android:layout_width="fill_parent" 
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:orientation="vertical"
        android:layout_height="wrap_content" 
        android:id="@+id/ListItem" 
        android:paddingBottom="3dip" 
        android:paddingLeft="10dip">
        <TextView 
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent" 
                android:id="@+id/Item1" 
                android:textSize="30dip">
        </TextView>
        <TextView 
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent" 
                android:id="@+id/subitem1">
        </TextView>
</LinearLayout>
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
06.11.2012, 16:33  [ТС]
Все, я запутался
Что я хотел. Что о типа ListView по нажатию его итемов открывается диалог для ввода значения. После ввода значения я бы это значение дописывал в выбранный итем. Наверное через ListView так не выйдет. Подскажите, как так сделать? Спасибо
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 16:46
Если правильно понял. Нужно создать список, и отслеживать нажатие на элементы допустим вот так
Java
1
2
3
4
5
6
7
    ListViewParam.setOnItemClickListener(new OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> arg,View arg1, int arg3, long arg2) 
        {
            Тут передаем в метод открывающий диалог редактирования параметры выбранной строки в списке. После нажатия пользователем кнопки сохранить записываем в хранилище элементов списка значение и обновляем адаптер списка (simpleAdapter.notifyDataSetChanged();)
        }
    });
Надеюсь это то что нужно)
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
06.11.2012, 17:10  [ТС]
А можно полную версию последнего кода или ссылку на нее. Извините в голове полная каша...

Добавлено через 5 минут
Эта вроде вариант где идет наполнение списка, а мне нужно сделать обновление позиций списка. Т.е. настройки, которые пользователь будет сам вносить. Я бы использовал PreferencesActivity, но там настройки хранятся в одном файле, а мне вроде бы как нужно в разных. У меня несколько виджетов и у каждого должна быть своя настройка.

Добавлено через 5 минут
Могу ли я используя PreferencesActivity хранить настройки для каждой копии виджета на экране? Ну т.е. могу ли я как то эти настройки делить по ид виджета?
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 17:20
Точно не помню но вроде ж для Preferences нужно указывать имя файла что мешает создать кучу разных файлов
0
 Аватар для dubok79
325 / 123 / 10
Регистрация: 01.11.2012
Сообщений: 587
06.11.2012, 17:50  [ТС]
Цитата Сообщение от sleep3 Посмотреть сообщение
Точно не помню но вроде ж для Preferences нужно указывать имя файла что мешает создать кучу разных файлов
Для Preferences да, а вот PreferencesActivity этой свой Preferences Framework там только один файл, так написано на сайте Александра Климова
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 18:12
Код 100% не без ошибок, сделал чтоб показать саму идею редактирования.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();  
   SimpleAdapter m= new SimpleAdapter(this,   
                                                list,
                                                R.layout.listitem, 
                                                new String[] {"Item1", "subitem1"},   
                                                new int[] {R.id.Item1,R.id.subitem1}); 
                        
ListViewParam.setAdapter(simpleAdapter);
ListViewParam.setOnItemClickListener(new OnItemClickListener() 
{
public void onItemClick(AdapterView<?> arg,View arg1, int arg3, long arg2) 
{
    Redact((int) arg2);
}
});
 
// Метод создания диалога редактирования
    public void Redact(final int id) 
    {
        final Dialog dialog;
 
        dialog = new Dialog(this);
 
        dialog.setContentView(R.layout.redact_dialog);
        EditText = (EditText) dialog.findViewById(R.id.editTextValue);
        EditText.setText(list.get(id).get("subitem1"));
 
        dialog.setTitle(""); 
        BootonOk = (Button) dialog.findViewById(R.id.buttonOk);
        BootonCansel = (Button) dialog.findViewById(R.id.buttonCansel);
        BootonOk.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                String temp = EditText.getText().toString();
                тут редактируем список полей list
                list.get(id).get("subitem1",temp )
                simpleAdapter.notifyDataSetChanged(); обновляем список
                dialog.cancel();
            }
        });
        BootonCansel.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v) 
            {
                // Закрываем диалоговое окно
                dialog.cancel();
            }
        });
        dialog.show();
    }
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
23.04.2015, 23:01
Цитата Сообщение от dubok79 Посмотреть сообщение
Есть компонент ListView, при его добавлении в активити он показывает список:
Item1
subitem1
ну и т.д. Как добавить эти самые subitem? Спасибо
У меня обратная задача: как удалить subitem1, чтобы в списке не было пустых строк?
У меня используется только Item1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2015, 23:01
Помогаю со студенческими работами здесь

Как из AsyncTask Добавить элементы в ListView
В общем сабж. Используя адаптер как сделать?

Как добавить строку "." в начале в ListView со своим обработчиком
Я в своей базе данных, на каждый новый каталог, дополнительно добавляю запись со строкой &quot;..&quot;, чтобы можно было переходить в...

ListView кнопка добавить item в избранное
Здравствуйте форумчане, не нашел в инете подобный вопрос, может неправильно делал поисковой запрос. Вообщем, у меня есть ListView со 100...

С помощью адаптера добавить два xml-я в listView
Есть два .xml &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton?
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru