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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.75
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

Как добавить в ListView subitem - Программирование Android

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

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

ну и т.д. Как добавить эти самые subitem? Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 16:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как добавить в ListView subitem (Программирование Android):

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

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

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

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

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

С помощью адаптера добавить два xml-я в listView - Программирование Android
Есть два .xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

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

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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
06.11.2012, 16:14  [ТС] #4
Вижу в листвью подитемы. Они бы мне сгодились для комментария
0
Миниатюры
Как добавить в ListView subitem  
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
06.11.2012, 16:17  [ТС] #5
Т.е. как в PreferencesActivity не получиться смудрить в ListView?
0
sleep3
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 16:27 #6
Сложный вариант. 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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
06.11.2012, 16:33  [ТС] #7
Все, я запутался
Что я хотел. Что о типа ListView по нажатию его итемов открывается диалог для ввода значения. После ввода значения я бы это значение дописывал в выбранный итем. Наверное через ListView так не выйдет. Подскажите, как так сделать? Спасибо
0
sleep3
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 16:46 #8
Если правильно понял. Нужно создать список, и отслеживать нажатие на элементы допустим вот так
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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
06.11.2012, 17:10  [ТС] #9
А можно полную версию последнего кода или ссылку на нее. Извините в голове полная каша...

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

Добавлено через 5 минут
Могу ли я используя PreferencesActivity хранить настройки для каждой копии виджета на экране? Ну т.е. могу ли я как то эти настройки делить по ид виджета?
0
sleep3
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 17:20 #10
Точно не помню но вроде ж для Preferences нужно указывать имя файла что мешает создать кучу разных файлов
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
06.11.2012, 17:50  [ТС] #11
Цитата Сообщение от sleep3 Посмотреть сообщение
Точно не помню но вроде ж для Preferences нужно указывать имя файла что мешает создать кучу разных файлов
Для Preferences да, а вот PreferencesActivity этой свой Preferences Framework там только один файл, так написано на сайте Александра Климова
0
sleep3
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 14
06.11.2012, 18:12 #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
122 / 93 / 9
Регистрация: 24.08.2010
Сообщений: 680
23.04.2015, 23:01 #13
Цитата Сообщение от dubok79 Посмотреть сообщение
Есть компонент ListView, при его добавлении в активити он показывает список:
Item1
subitem1
ну и т.д. Как добавить эти самые subitem? Спасибо
У меня обратная задача: как удалить subitem1, чтобы в списке не было пустых строк?
У меня используется только Item1.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2015, 23:01
Привет! Вот еще темы с ответами:

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

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
23.04.2015, 23:01
Ответ Создать тему
Опции темы

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