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

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

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

Listview мультивыбор и одиночный - Программирование Android

16.12.2012, 15:11. Просмотров 1012. Ответов 2
Метки нет (Все метки)

Добрый день. Есть код, который выводит в listview папки и файлы на СД карте.
Сообственно проблема в том, что нужно для файлов мультивыбор, а для директорий обычный клик.
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
54
55
private void getDir(String dirPath) {
        ListView lView = (ListView) findViewById (android.R.id.list);
        CheckBox Check = (CheckBox) findViewById (R.id.checkBox1);
    
        myPath.setText("Location: " + dirPath); // где мы сейчас
        item = new ArrayList<String>();
        path = new ArrayList<String>();
        File f = new File(dirPath);
        File[] files = f.listFiles(); // получаем список файлов
 
        // если мы не в корневой папке
        if (!dirPath.equals(root)) {
             HashMap<String, Object> map = new HashMap<String, Object>();
                map.clear();
            map.put("filedir", root);
            item.add(root);
            path.add(root);
            item.add("../");
            map.put("filedir", "../");
            path.add(f.getParent());
            mylist.add(map);
        }
 
        // формируем список папок и файлов для передачи адаптеру
        for (int i = 0; i < files.length; i++) {
             HashMap<String, Object> map = new HashMap<String, Object>();
            File file = files[i];
            path.add(file.getPath());
            if (file.isDirectory())
            {
                map.clear();
                item.add(file.getName() + "/");
                map.put("filedir",file.getName() + "/" );
                map.put("filecheck"," ");
                mylist.add(map);
                
            }
            else
            {
                map.clear();
                item.add(file.getName());
                map.put("filedir",file.getName());
                map.put("filecheck",Check);
                mylist.add(map);
    
            }
        }
 
        // Все готов. Можно выводить на экран список
        System.out.println(mylist);
         
          SimpleAdapter adapter = new SimpleAdapter(this,mylist,R.layout.listd,
                    new String[]{"filedir","filecheck"}, // массив названий
                    new int[]{ R.id.text3}    );
          setListAdapter(adapter);
Главный listview: (dir)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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:id="@+id/path"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
    <TextView
        android:id="@android:id/empty"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="No Data" />
 
</LinearLayout>
И listview с текстом и чекбоксами: (listd

XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
 
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="343dip"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    </RelativeLayout>
 
    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/relativeLayout1"
        android:text="CheckBox" />
 
 
    <TextView
        android:id="@+id/text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/checkBox1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/relativeLayout1"
        android:text="TextView" />
 
</RelativeLayout>
В таком случаи оно выводит чекбоксы и к файлам и к директориям.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 15:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Listview мультивыбор и одиночный (Программирование Android):

ListView и мультивыбор при открытии активити - Программирование Android
Здравствуйте. Подскажите пожалуйста, можно ли при открытии активити со списком, в этом списке некоторые элементы отметить как выбранные? ...

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

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

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

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

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

2
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
16.12.2012, 19:21 #2
Вы знаете, что именно является папкой или файлом, остается чекбоксы показывать только для файлов. Сделайте свой класс адаптера наследованный, например на BaseAdapter, в котором переопределите метод getView и в нем уже будете скрывать (или создавать) для нужных строк чекбоксы. А для сортировки я использовал Comparator.
Во вложении пример, который мне дали на этом форуме и он мне помог очень даже и вам должен помочь.
1
Вложения
Тип файла: zip testnewl.zip (904.0 Кб, 32 просмотров)
Chipito
0 / 0 / 0
Регистрация: 20.11.2011
Сообщений: 29
16.12.2012, 20:48  [ТС] #3
Огромное спасибо! Работает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 20:48
Привет! Вот еще темы с ответами:

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

Переход из Listview в Listview - Программирование Android
Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось новое нужное(т.е. то по которому тапнули) активити с другим...

Мультивыбор в grid - FoxPro
Добрый день. Как сделать в grid мультивыбор? Спасибо. Добавлено через 4 часа 6 минут Мине нужно, чтобы в гриде я могла выбрать...

Мультивыбор в TreeView - Visual Basic .NET
Добрый день, Товарищи! Помогите кто чем может, кто словцом ободряющем, кто кодом вездесущем :) Нужен TreeView с мультиселектом. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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