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

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

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

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

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

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

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

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

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

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

Или воспользуйтесь поиском по форуму:
+1
118 / 89 / 8
Регистрация: 24.08.2010
Сообщений: 667
23.04.2015, 23:01     Как добавить в ListView subitem #13
Цитата Сообщение от dubok79 Посмотреть сообщение
Есть компонент ListView, при его добавлении в активити он показывает список:
Item1
subitem1
ну и т.д. Как добавить эти самые subitem? Спасибо
У меня обратная задача: как удалить subitem1, чтобы в списке не было пустых строк?
У меня используется только Item1.
Yandex
Объявления
23.04.2015, 23:01     Как добавить в ListView subitem
Ответ Создать тему
Опции темы

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