Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/23: Рейтинг темы: голосов - 23, средняя оценка - 4.78
Severomor1
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 36
1

Обработка нажатия CheckBox в ListView

22.04.2014, 13:53. Просмотров 4223. Ответов 31
Метки нет (Все метки)

Привет,
Есть ListView на основе BaseAdapter. Каждый элемент содержит TextView и несколько чекбоксов. Как обработать нажатие на конкретный CheckBox? onListItemClick при нажатие на чекбокс не вызывается.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 13:53
Ответы с готовыми решениями:

CheckBox обработка события нажатия
Проблема в следующем. Есть своего рода каталог картинок возле которой стоит...

Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные...

Создание ListView с CheckBox из БД
Привет, приложение создает БД с полями id, String и Int _id Name Check...

Обработчик нажатия на ListView
Добрый день, перерыл много сайтов, но ответ все же не нашел. Проблема в...

ListView не реагирует на нажатия
Кинул на активность элемент ListView, присвоил ей кастомный адаптер и слой для...

31
kirawa
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
23.04.2014, 16:52 21
NiRamz слыш ты внимательно прочитал бы что он вообще сделал

Добавлено через 1 минуту
Цитата Сообщение от MonsterNya Посмотреть сообщение
Создал дополнительный ListView для CheckedTextView, но получил несоответствие высоты строк.
Ты ваще NiRamz погнал на меня, жду извинений
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
23.04.2014, 16:59 22
Прочитай сначала что было описано, далее какие пути решения были предприняты. А потом еще раз на то что я написал.

Не по теме:

и как бы не в подворотне общаемся, можно и более уважительно высказываться

0
MonsterNya
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 27
23.04.2014, 18:24 23
NiRamz, спасибо, а можно подробнее? сейчас у меня так
Java
1
2
3
4
5
6
7
8
ListView lvData;
lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {                
                m_id = id;
                showDialog(IDM_ACTION);
            }
        });
0
kirawa
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
23.04.2014, 19:53 24
Цитата Сообщение от kirawa Посмотреть сообщение
Создал дополнительный ListView для CheckedTextView, но получил несоответствие высоты строк.
тоесть он создал два б***ь ListView ёб*****й в рот и получил несоответствие строк я не понимаю
0
MonsterNya
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 27
23.04.2014, 21:43 25
В onCreate сделал
Java
1
2
3
text = (TextView) findViewById(R.id.itemID);
TextView text = new TextView(this);
text.setOnClickListener(new MyClickListener());
А в MainActivity
Java
1
2
3
4
5
6
7
class MyClickListener implements View.OnClickListener {
         @Override
         public void onClick(View v) {
         // TODO Auto-generated method stub
         Log.d("my_tag", "Boom");
         }
         };
Но так не работает, строка всё ещё выделяется целиком. Что делаю не так?
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
24.04.2014, 11:10 26
это все делается в getView в адаптере
0
MonsterNya
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 27
24.04.2014, 12:11 27
Вот только адаптер у меня сейчас
Java
1
scAdapter = new SimpleCursorAdapter(this, R.layout.item, cursor, from, to);
Я так понимаю мне его полностью переделать надо?
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
24.04.2014, 12:26 28
да, унаследуйте свой класс от CursorAdapter
0
MonsterNya
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 27
24.04.2014, 13:51 29
Уфф, что-то вышло, только теперь строки пустые и сначала отрабатывает lvData.setOnItemClickListener и вызывает showDialog(IDM_ACTION), а после выбора действия и возвращения к списку работает Toast кликлик...А если убрать lvData.setOnItemClickListener, то вообще по нажатию на строку списка нчиего не происходит
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
60
61
62
63
64
65
66
67
68
69
70
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);     
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        // получаем курсор
        refreshCursor();
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_ID, DB.COLUMN_TITLE,
                DB.COLUMN_TRIGGER };
        int[] to = new int[] { R.id.itemID, R.id.itemTitle, R.id.itemTrigger };
 
        // создааем адаптер и настраиваем список
        scAdapter = new CustomCursorAdapter(this, R.layout.item, cursor, from,
                to);
        lvData = (ListView) findViewById(R.id.lvData);
        
        // устанавливаем режим выбора пунктов списка 
        lvData.setChoiceMode(ListView.CHOICE_MODE_SINGLE);////////////////////////////////
                
        lvData.setAdapter(scAdapter);       
        
        text = (TextView) findViewById(R.id.itemTrigger);       
        
        lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {                
                showDialog(IDM_ACTION);
            }
        });
    }   
     
    public class CustomCursorAdapter extends SimpleCursorAdapter {
 
         public CustomCursorAdapter(Context context, int layout, Cursor cursor,
                String[] from, int[] to) {
            super(context, layout, cursor, from, to);
            // TODO Auto-generated constructor stub
        }
           class ViewHolder {
             TextView b;
         }
        public View getView(final int position, View convertView, ViewGroup parent)
        {
            View view = convertView;
            ViewHolder holder;
            if(view == null) {
                LayoutInflater vi = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                   view = vi.inflate(R.layout.item, null);
            holder = new ViewHolder();
            holder.b = (TextView) view.findViewById(R.id.itemTrigger);
            view.setTag(holder);
            }
            else
            {
 
                holder = (ViewHolder) view.getTag();
            holder.b.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Toast.makeText(getApplicationContext(),"ClickClick "+position, Toast.LENGTH_LONG).show();
                }
            });
            }
            return view;
        }}
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
24.04.2014, 15:01 30
Цитата Сообщение от MonsterNya Посмотреть сообщение
lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
* * * * * * public void onItemClick(AdapterView<?> parent, View view,
* * * * * * * * * * int position, long id) {* * * * * * * *
* * * * * * * * showDialog(IDM_ACTION);
* * * * * * }
* * * * });
убираем.

Цитата Сообщение от MonsterNya Посмотреть сообщение
holder.b.setOnClickListener(new View.OnClickListener() {
* * * * * * * * public void onClick(View v) {
* * * * * * * * * * // TODO Auto-generated method stub
* * * * * * * * * * Toast.makeText(getApplicationContext(),"ClickClick "+position, Toast.LENGTH_LONG).show();
* * * * * * * * }
* * * * * * });
* * * * * * }
меняем на
Java
1
holder.b.setOnClickListener(new MyListener());
0
MonsterNya
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 27
24.04.2014, 15:35 31
А что такое MyListener() и что там лежит?
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
24.04.2014, 16:28 32
в этой теме я об этом писал уже
0
24.04.2014, 16:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 16:28

Сохранение состояния Checkbox в Listview
Возникла проблема с сохранением состояния checkbox'ов в Listview. Listview...

Перестали происходить нажатия на ListView
Кто не спит, помогите как можно скорее. Есть ListView. вроде ничего не трогал,...

Кнопка в listView и обработчик нажатия
Здравствуйте.Помогите пожалуста. Есть список ListView обрабатываю нажатие...


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

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

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