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

Слушатели списка со своей разметкой - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как зажечь вспышку от камеры? http://www.cyberforum.ru/android-dev/thread620673.html
Как зажечь вспышку от камеры не включая камеру
Программирование Android как к AVD подключить модуль ядра fuse Здравствуйте! Мне нужно подключить библиотеку fuse-android к AVD. Для этого вначале необходимо подключить модуль ядра fuse. Я взял модуль /lib/modules/3.2.0-23-generic/kernel/fs/fuse/cuse.ko и... http://www.cyberforum.ru/android-dev/thread620661.html
на каком языке написано ядро Андроида? Программирование Android
Добрый день народ) Подскажите пожалуйста, а на каком языке написано ядро Андроида? не могу найти в инете... И легче ли писать под линухой? Спасибо!
Программирование Android Массив button
Здравствуйте! У меня на xml-форме есть семь кнопок, как мне их в коде определить как массив с 7-ю элементами, чтобы я мог обрабатывать их в цикле и каждый элемент массива ссылался на определенную...
Программирование Android Путь к файлу и графические ресурсы http://www.cyberforum.ru/android-dev/thread620412.html
Понимаю, что вопрос детский, но тем не менее... Есть строковая переменная, содержащая название файла, например: String fileName="picture" В папке res\drawable приложения лежит мой файл...
Программирование Android Программное изменение цвета текста button Доброго времени суток всем! Возникла проблема: Необходимо, чтобы при нажатии на кнопку, она меняла цвет текста (на цвет из ресурсов), но при использовании кода: bWeek2.setTextColor(R.color.white);... подробнее

Показать сообщение отдельно
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
10.07.2012, 01:33  [ТС]
Мужик, ты-мозг! ))

Вот теперь следующий стопор:
надо, чтоб при клике по элементу списка в чекбоксе ставилась галка.
Соответственно, возможность клика по чекбоксу я удаляю.

для данных в адаптере я использую свой класс:
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
package com.gg.top100;
 
 
public class ListItem {
    
    private String name;
    private String pictureName;
    private String description;
    private boolean checkFlag=false;
 
    public ListItem(String _name, String _pictureName, String _desription){
        name=_name;
        pictureName=_pictureName;
        description=_desription;        
    }
    
    
    public String getName(){
        return name;
    }
    
    public String getPictureName(){
        return pictureName;
    }
    
    public String getDescription(){
        return description;
    }
    
    public boolean getCheckFlag(){
        return checkFlag;
    }
    
    public void checkItem(){
        checkFlag=true;
    }
В свой адаптер в метод getView добавляю проверку значения checkFlag для моего элемента и если true, то ставлю галку:

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
56
57
58
59
package com.gg.top100;
 
import java.util.List;
 
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
 
public class ListArratAdapter extends ArrayAdapter<ListItem>{
    
    int resource;
 
    public ListArratAdapter(Context context, int _resource,
            List<ListItem> items) {
        super(context, _resource, items);
        
        resource=_resource; 
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        
        LinearLayout ListItemView;
        CheckBox checkBox;
        ListItem item=getItem(position);
        
        String itemName=item.getName();
    
        if (convertView==null){
            ListItemView=new LinearLayout(getContext());
            String inflater=Context.LAYOUT_INFLATER_SERVICE;
            LayoutInflater vi=(LayoutInflater)getContext().getSystemService(inflater);
            vi.inflate(resource, ListItemView, true);           
        } else {
            ListItemView=(LinearLayout)convertView;
        }
        
        TextView nameView= (TextView) ListItemView.findViewById(R.id.item_name);
        checkBox=(CheckBox)ListItemView.findViewById(R.id.checkbox);
        checkBox.setFocusable(false);
        checkBox.setClickable(false);
        
        nameView.setText(itemName);
            
        if (item.getCheckFlag()){       
        checkBox.setChecked(true);  
        
        }
        return ListItemView;
    }
    
 
}
В своей активити в onItemClickListener добавляем пару строк
Java
1
2
3
4
5
6
7
8
 public void onItemClick(AdapterView<?> parent, View v, int position,
                    long id) {
                
                 
                if (!itemList.get(position).getCheckFlag()){
                    itemList.get(position).checkItem();
                }
}
(itemList - это массив адаптера)

При таком раскладе галки все же появляются, но непонятно по какому принципу. Все элементы списка, которые видны всегда - всегда без галок....
пробовал вставлять куда мог invalidate() - не помогло... отсюда вывод - я что-то не так сделал.

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