Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96

Глюк чекбоксов

15.02.2013, 00:44. Показов 2679. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема состоит в том что у меня создается список чекбоксов, но когда их количество превышает 9 штук - тут начинается самое интересное, когда я ставлю галочку в 1-м чекбоксе -автоматически ставится галочка в 9, во 2-м - тогда и 10 тоже....
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
private Test s (){
    Test test = new Test();
    Questions question = new Questions();
    question.SetQuestion("Voprosik nomer 1?");
    Answers answer = new Answers();
    answer.setAnswer("dd");
    List<Answers> aa = new ArrayList<Answers>(); 
    Answers[] an = new Answers[30];
    String[] answeri = {"Jeltogo","Zelenogo","Krasnogo","Chernogo","Fioletovogo","1","2","3","4","5","6"};
    for (int i = 0; i < answeri.length; i++) {
        an[i] = new Answers();
        an[i].setAnswer(answeri[i]);
        aa.add(an[i]);
    }
 
    question.SetAnswers(aa);
    
    
    List<Questions> que = new ArrayList<Questions>();
    que.add(question);
    test.setQuestions(que);
    return test;
}     
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
          final Context context = this;
          final Button butnext = (Button)findViewById(R.id.buttonNext);
          final  TextView tv =(TextView)findViewById(R.id.textViewQuestion);
        //poly4enie voprosa
        final Test test = s();
        final Iterator<Questions> itera = test.getQuestions().iterator();
        final Questions q = itera.next();
        List<Answers> a = q.getAnswers();
        // массивы данных
        String[] texts = new String[30];
        
        int j = 0;
        for (Iterator<Answers> iter = a.iterator(); iter.hasNext(); ) {
            texts[j] = iter.next().getAnswer();
            j++;
        }
 
        // упаковываем данные в понятную для адаптера структуру
        ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
            texts.length);
        Map<String, Object> m;
        for (int i = 0; i < texts.length; i++) {
          m = new HashMap<String, Object>();
          if(texts[i]!=null){
          m.put(ATTRIBUTE_NAME_TEXT, texts[i]);
          data.add(m);}
        }
 
        // массив имен атрибутов, из которых будут читаться данные
        String[] from = { ATTRIBUTE_NAME_TEXT};
        // массив ID View-компонентов, в которые будут вставлять данные
        int[] to = { R.id.cbChecked};
 
        // создаем адаптер
        SimpleAdapter sAdapter = new SimpleAdapter(this, data, R.layout.item,
            from, to);
 
        // определяем список и присваиваем ему адаптер
        lvSimple = (ListView) findViewById(R.id.lvSimple);
        tv.setText(q.getQuestion());
        lvSimple.setAdapter(sAdapter);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2013, 00:44
Ответы с готовыми решениями:

Checkbox как узнать на которых чекбоксов стоит галочка
Здравствуйте. Есть 4 checkbox-a При нажатии кнопки нужно вывести какой из чекбоксов выбран. На данный момент нашел пример, но он...

Интересный глюк. Или не глюк? Смена дефолтного пути
Вкратце объясняю: Есть приложение, которое подключается к БД Access. Путь к файлу БД в строке подключения прописываю просто как имя...

Глюк или не глюк в Siglent SDS 1192CML..?
Всем привет! У меня тоже имеется Siglent SDS 1192CML, пора создавать клуб любителей ентого девайса :) При замерах одного и того же...

20
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 00:58
адаптер использует повторно вьюшки которые спрятались за пределы видимости.
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 01:02  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
адаптер использует повторно вьюшки которые спрятались за пределы видимости.
не подскажешь как решить проблему эту?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 01:25
ну, самый очевидный способ это переопределить getView в адаптере и сбрасывать/устанавливать галочку где нужно, но мне кажется есть более правильный подход с установлением ChoiceMode CHOICE_MODE_MULTIPLE и использованием Checkable вьюшек, а может и нет)

Добавлено через 18 минут
хотя в любом случае использование ChoiceMode и Checkable более красивое решение.
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 01:52  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
ну, самый очевидный способ это переопределить getView в адаптере и сбрасывать/устанавливать галочку где нужно, но мне кажется есть более правильный подход с установлением ChoiceMode CHOICE_MODE_MULTIPLE и использованием Checkable вьюшек, а может и нет)

Добавлено через 18 минут
хотя в любом случае использование ChoiceMode и Checkable более красивое решение.
если можно то поподробнее с Checkable можете растолковать?

Добавлено через 18 минут
А если просто в цикле для каждого элемента создавать чекбокс, не используя адаптер, то проблемма по идее не должна повторится?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:08
Цитата Сообщение от San4oPanso Посмотреть сообщение
если можно то поподробнее с Checkable можете растолковать?
Есть интерфейс Checkable, пример реализации CheckedTextView
Используется вместе с установкой ChoiceMode.
Должно гарантировать корректную работу списка если нужна возможность выбора одного из многих или много из многих элементов списка.


Цитата Сообщение от San4oPanso Посмотреть сообщение
А если просто в цикле для каждого элемента создавать чекбокс, не используя адаптер, то проблемма по идее не должна повторится?
не понимаю.
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:11  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
Есть интерфейс Checkable, пример реализации CheckedTextView
Используется вместе с установкой ChoiceMode.
Должно гарантировать корректную работу списка если нужна возможность выбора одного из многих или много из многих элементов списка.



не понимаю.
Вот
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
LinearLayout ll = new Linierlayout(getApplicationContext());
 
for(int i =0; i<= how many checkbox u want; i++)
 
{
 
CheckBox cb = new CheckBox(getApplicationContext());
 
cb.setText("I'm dynamic!");
 
ll.addView(cb);
 
}
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:18
ну да, только это уже не список и LayoutParams не забудьте.

Добавлено через 4 минуты
а если в списке должно быть 1000 пунктов, вы будете создавать 1000 CheckBox'ов?
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:23  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
ну да, только это уже не список и LayoutParams не забудьте.

Добавлено через 4 минуты
а если в списке должно быть 1000 пунктов, вы будете создавать 1000 CheckBox'ов?
Спасибо, а вот если использовать Checkble, то мне как, обрабатывать когда человек ставит галочку и запрещать в этот момент чекбл для других чекбоксов?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:25
опять не понял)
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:37  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
опять не понял)
Я понял что надо тут как ни будь применить Checkble тобы чекбоксы мои не повторялись, но я совсем не понимаю как,хоть убей)
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:38
R.layout.item как выглядит?
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:44  [ТС]
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="horizontal">
<LinearLayout
 android:id="@+id/linearLayout1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 android:orientation="vertical">
<CheckBox
 android:id="@+id/cbChecked"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="@string/answer_not_found"
 
 >
</CheckBox>
</LinearLayout>
</LinearLayout>
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 03:05
я имел ввиду item.xml

в общем, вот пример реализации Checkble

Добавлено через 59 секунд
в чем смысл LinearLayout'ов здесь?

Добавлено через 2 минуты
XML
1
2
3
4
5
6
<CheckBox
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/cbChecked"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="@string/answer_not_found" />
этого достаточно.

и в лист добавьте
XML
1
android:choiceMode="multipleChoice"
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 03:31  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
я имел ввиду item.xml

в общем, вот пример реализации Checkble

Добавлено через 59 секунд
в чем смысл LinearLayout'ов здесь?
это забыл удалить когда чистил файл от ненужных вьюшек) я посмотрел ссылку но что то яснее ситуация не стала для меня)чувствую себя дном каким то)

Добавлено через 23 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
я имел ввиду item.xml

в общем, вот пример реализации Checkble

Добавлено через 59 секунд
в чем смысл LinearLayout'ов здесь?

Добавлено через 2 минуты
XML
1
2
3
4
5
6
<CheckBox
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/cbChecked"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="@string/answer_not_found" />
этого достаточно.

и в лист добавьте
XML
1
android:choiceMode="multipleChoice"
теперь когда ставишь галочку и прокручиваешь так чтобы чекбокс вышел за пределы видимости, то галочка пропадает(
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 03:40
значит все-таки нужно переопределить getView() в адаптере.

Добавлено через 20 секунд
или вы сделали что-то не так.
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 15:26  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
значит все-таки нужно переопределить getView() в адаптере.

Добавлено через 20 секунд
или вы сделали что-то не так.
можете хоть примерно накидать код который должен быть в моем случае в getview(), чтобы было от чего отталкиватся
0
 Аватар для kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
18.02.2013, 23:35
в getView используй теги - проблем не будет.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.02.2013, 00:11
kvaka, что вы имеете ввиду?

Добавлено через 22 секунды
как именно использовать?
0
 Аватар для kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
19.02.2013, 00:27
имел ввиду использование тэгов и вьюхолдеров. Такая связка еще вроде как очень экономит ресурсы на поиск элемента на позиции списка.

http://stackoverflow.com/quest... om-adapter

по этой ссылке - 3й ответ - пример.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2013, 00:27
Помогаю со студенческими работами здесь

Глюк печатания и глюк порчи константы
Дамы и господа! Я столкнулся с двумя глюками, которые не нашёл в списке распространённых ошибок. 1) При попытке распечатать массив...

5 чекбоксов из 10
Добрый день! У меня есть 10 чекбоксов, как сделать так чтобы можно было выбрать только 5 штук и если будет не равно 5 то будет выводиться...

Запись чекбоксов в бд
Прошу помощи. Нужно выбранные чекбоксы записать в бд. Код $value = $_POST; value = $_POST; $select =...

Выбор чекбоксов
Всем привет. Помогите написать функцию. Задача такая: на странице 7 чекбоксов с названием и значением от 1 до 7. Мне нужно когда...

Проверка чекбоксов
Делаю форму с завитушками. Выглядит так: https://www.cyberforum.ru/attachment.php?attachmentid=305724&amp;stc=1&amp;d=1378733508 Если...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru