Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
BigOblom
121 / 121 / 17
Регистрация: 30.06.2010
Сообщений: 452
#1

Выбираются все пункты в RadioButton

12.01.2015, 01:45. Просмотров 1667. Ответов 27
Метки нет (Все метки)

Доброй ночи.
Заполняю ListView строками, состоящими из RadioButton. Загружается все хорошо, но выбирать можно хоть все пункты, снимать нельзя.
Вот код getView
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Override
    public View getView(int position, View convertView, ViewGroup parent) {
 
        View view = convertView;
 
        if (convertView==null){
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            // задаем вид элемента списка, который мы создали выше
            view = inflater.inflate(R.layout.answer_item_radio, null);
        }
 
        // проставляем данные для элементов
        RadioButton radioButton = (RadioButton)view.findViewById(R.id.radioButton);
 
        // получаем элемент со списка
        Answers answersItem = data.get(position);
 
        // устанавливаем значения компонентам одного элемента списка
        radioButton.setText(answersItem.getAnswer());
        radioButton.setTag(answersItem._Id);
 
        return view;
    }
На слое answer_item_radio лежит один RadioButton
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/radioGroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal">
 
 
        <RadioButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="New RadioButton"
            android:id="@+id/radioButton"
            android:layout_gravity="center_horizontal"
            android:checked="false" />
    </RadioGroup>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2015, 01:45
Ответы с готовыми решениями:

Объединить пункты меню в группу
Не могу найти как объединить меню в группы, чтобы потом можно было удобно ими...

Вставит пункты меню в фрагмент
Всем добра. Подскажите, как продублировать пункты меню, из navigation drawer,...

Нужно написать меню, управляемое стрелочками. Есть код, но все пункты в ряд и не выбираются
Вот сам код, подскажите, пожалуйста, как правильно сделать чтоб можно было...

Создать меню, пункты которого выбираются стрелками
Нужно составить программу с пользовательским меню, разделы которого можно...

Игра в покер - из колоды выбираются не все карты при раздаче
Всем доброго времени суток. Перейду сразу к делу. Постараюсь кратко и четко...

27
BigOblom
121 / 121 / 17
Регистрация: 30.06.2010
Сообщений: 452
12.01.2015, 13:56  [ТС] #21
Spelcrawler, только TextView, который я заполняю в адаптере.
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.01.2015, 14:02 #22
BigOblom
Рабочий такой способ?
В данном виде?
Думаю, что нет

У тебя isMulti - это "глобальная" переменная для вопроса, отражающая множественность выбора.
Почему у тебя признак множественности выбора ответов меняется от нажатия на ответ?
Ответ как-то влият на характеристику вопроса?

В лоб.
Вводим глобальную переменную checkedItemPosition с начальным значением -1 (типа ничего не выбрано).
При каждом клике проверяем.
Если данный пункт не выбран, то checkedItemPosition присваиваем позицию этого пункта, если выбран, то сбрасываем в дефолт.
И вызываем adapter.notifyDataSetChanged()

Все изменения фона элемента списка, естественно, производим в getView адаптера в зависимости от значения checkedItemPosition

Для того, чтобы не морочиться с "//тут как то нужно установить стандартный фон", думаю достаточно будет в getView сначала отработать метод суперкласса, а дальше уже работать с возвращенным этим методом View.

Итого, схематически

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class    MyActivity extends Activity {
 
int checkedItemPosition;
 
...
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    ...
        int checkedItemPosition = -1;
    ...
    }
...
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
@Override
    public View getView(int position, View convertView, ViewGroup parent) {
 
        View view = super.getView(position, convertView, parent);
 
        if (position==checkedItemPosition)
                                 view.setBackgroundColor(Color.YELLOW);
       
       ...// всё остальное.
 
        return view;
    }
Java
1
2
3
4
5
6
7
8
9
10
11
lvQuestions.setOnItemClickListener( new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 
                     if (checkedItemPosition != position)
                                 checkedItemPosition = position;
                     else checkedItemPosition = -1;
                     
                     listViewAdapter.notifyDataSetChanged();
            }
        });
Добавлено через 1 минуту
Spelcrawler, извини, но, похоже ты не вник в проблему...и вы двое сейчас делаете, что попало, но не то, что нужно.
Лучше чаю попейте
1
BigOblom
121 / 121 / 17
Регистрация: 30.06.2010
Сообщений: 452
12.01.2015, 14:05  [ТС] #23

Не по теме:

Armagedo, хорошая идея, на счет чая)


Ухватил мою мысль, я ее никак поймать не мог) А как с мультивыбором?
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.01.2015, 14:05 #24
,,,
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
12.01.2015, 14:08 #25
Armagedo, очень даже вник) Просто я писал для случая с множественным выбором. Для не очень больших списков в этом случае удобнее использовать ScrollView вместо ListView - работать будет быстрее. Т.к. ListView при каждом чихе будет полностью перерисовываться, а в ScrollView только то что нужно. У вас же приведен код только для одиночного выбора. А зачем оно вообще? Окрашивать что-то в другой цвет, если выбрать можно только что-то одно? Не проще ли сразу выполнить какое-то действие и перейти на другой экран?
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.01.2015, 14:13 #26
Armagedo, очень даже вник)
Думаю, вряд ли...
У человека уже написано немного кода, построены базы.
Просто, кроме него и меня об этом никто не знает

Цитата Сообщение от Spelcrawler Посмотреть сообщение
А зачем оно вообще? Окрашивать что-то в другой цвет, если выбрать можно только что-то одно? Не проще ли сразу выполнить какое-то действие и перейти на другой экран?
Если ты поднимешься немного выше в начало повествования, то обнаружишь, что это предложение не подходит ему, поскольку нужна наглядность ...
Так, что, опять, извини...
0
BigOblom
121 / 121 / 17
Регистрация: 30.06.2010
Сообщений: 452
12.01.2015, 14:15  [ТС] #27
Spelcrawler, при использовании только TextView без RelativeLayout вся строка не выбирается, выбирается только часть строки, где есть текст. Кстати. От привязки backgroundresource в коде можно избавиться, привязав в слое)
XML
1
2
3
4
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
android:background="@drawable/item_list_selector"
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
12.01.2015, 14:15 #28
Мне как бы всё равно и я не претендую на поводыря, если что
0
12.01.2015, 14:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2015, 14:15

СМА LG F8068LD1, Выбираются все программы при нажатии старт не стартует
Все питание в норме, все звонится, все светодиоды звонятся, по дидам связанным...

Как перебрать все пункты меню ?
т.е. если заранее не известно сколько MenuItems содержится в MainMenu..

В файл записать все отмеченые пункты в checkedListBox?
Подскажите какой метод выбрать, есть такой кусок кода (запись в файл) : ...


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

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

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