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

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

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

Author24 — интернет-сервис помощи студентам
Проблема состоит в том что у меня создается список чекбоксов, но когда их количество превышает 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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 2
адаптер использует повторно вьюшки которые спрятались за пределы видимости.
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 01:02  [ТС] 3
Цитата Сообщение от V0v1k Посмотреть сообщение
адаптер использует повторно вьюшки которые спрятались за пределы видимости.
не подскажешь как решить проблему эту?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.02.2013, 01:25 4
ну, самый очевидный способ это переопределить getView в адаптере и сбрасывать/устанавливать галочку где нужно, но мне кажется есть более правильный подход с установлением ChoiceMode CHOICE_MODE_MULTIPLE и использованием Checkable вьюшек, а может и нет)

Добавлено через 18 минут
хотя в любом случае использование ChoiceMode и Checkable более красивое решение.
0
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 96
15.02.2013, 01:52  [ТС] 5
Цитата Сообщение от 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 6
Цитата Сообщение от San4oPanso Посмотреть сообщение
если можно то поподробнее с Checkable можете растолковать?
Есть интерфейс Checkable, пример реализации CheckedTextView
Используется вместе с установкой ChoiceMode.
Должно гарантировать корректную работу списка если нужна возможность выбора одного из многих или много из многих элементов списка.


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

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

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

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

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

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

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

по этой ссылке - 3й ответ - пример.
0
19.02.2013, 00:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2013, 00:27
Помогаю со студенческими работами здесь

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

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

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

Проверка чекбоксов
Делаю форму с завитушками. Выглядит так: ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru