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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
San4oPanso
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 96
#1

Глюк чекбоксов - Программирование Android

15.02.2013, 00:44. Просмотров 1261. Ответов 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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 00:44     Глюк чекбоксов
Посмотрите здесь:

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

Глюк SQLite? - Программирование Android
Есть столбец таблицы, описанный как &quot;INTEGER NOT NULL DEFAULT 0&quot; По ошибке записал в него не число, а строку &quot;CreatedOnPDA&quot;. И поле...

Странный глюк IntelliJ IDEA - Программирование Android
IntelliJ IDEA 2016.1.3 Столкнулся с таким: if (_Константа_ || Функция()) { //...... }

Дело в коде или глюк Студио? Один из пунктов ListView не работает - Программирование Android
Здравствуйте, подскажите пожалуйста, где проблема, всю голову сломал уже. С помощью ListView сделал меню, названия пунктов меню берутся из...

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

Проверить value чекбоксов - JavaScript
Доброе время суток! Есть чекбоксы &lt;input type=&quot;checkbox&quot; name=&quot;chekchek&quot; value=&quot;Посудомоечная машина&quot;&gt;&amp;nbsp;&amp;nbsp;Посудомоечная...

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

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

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

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


Цитата Сообщение от San4oPanso Посмотреть сообщение
А если просто в цикле для каждого элемента создавать чекбокс, не используя адаптер, то проблемма по идее не должна повторится?
не понимаю.
San4oPanso
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:11  [ТС]     Глюк чекбоксов #7
Цитата Сообщение от 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);
 
}
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:18     Глюк чекбоксов #8
ну да, только это уже не список и LayoutParams не забудьте.

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

Добавлено через 4 минуты
а если в списке должно быть 1000 пунктов, вы будете создавать 1000 CheckBox'ов?
Спасибо, а вот если использовать Checkble, то мне как, обрабатывать когда человек ставит галочку и запрещать в этот момент чекбл для других чекбоксов?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:25     Глюк чекбоксов #10
опять не понял)
San4oPanso
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:37  [ТС]     Глюк чекбоксов #11
Цитата Сообщение от V0v1k Посмотреть сообщение
опять не понял)
Я понял что надо тут как ни будь применить Checkble тобы чекбоксы мои не повторялись, но я совсем не понимаю как,хоть убей)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 02:38     Глюк чекбоксов #12
R.layout.item как выглядит?
San4oPanso
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 02:44  [ТС]     Глюк чекбоксов #13
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>
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 03:05     Глюк чекбоксов #14
я имел ввиду 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"
San4oPanso
2 / 2 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 03:31  [ТС]     Глюк чекбоксов #15
Цитата Сообщение от 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"
теперь когда ставишь галочку и прокручиваешь так чтобы чекбокс вышел за пределы видимости, то галочка пропадает(
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 03:40     Глюк чекбоксов #16
значит все-таки нужно переопределить getView() в адаптере.

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

Добавлено через 20 секунд
или вы сделали что-то не так.
можете хоть примерно накидать код который должен быть в моем случае в getview(), чтобы было от чего отталкиватся
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
18.02.2013, 23:35     Глюк чекбоксов #18
в getView используй теги - проблем не будет.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.02.2013, 00:11     Глюк чекбоксов #19
kvaka, что вы имеете ввиду?

Добавлено через 22 секунды
как именно использовать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2013, 00:27     Глюк чекбоксов
Еще ссылки по теме:

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

Стили чекбоксов - HTML, CSS
Можно ли средствами html изменить их вид? В частности размер или задать другие стили дефолтные? В опере выглядят как то убого, можно ли...

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

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


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

Или воспользуйтесь поиском по форуму:
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
19.02.2013, 00:27     Глюк чекбоксов #20
имел ввиду использование тэгов и вьюхолдеров. Такая связка еще вроде как очень экономит ресурсы на поиск элемента на позиции списка.

http://stackoverflow.com/questions/5...custom-adapter

по этой ссылке - 3й ответ - пример.
Yandex
Объявления
19.02.2013, 00:27     Глюк чекбоксов
Ответ Создать тему
Опции темы

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