Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
lastm
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 3
#1

Как использовать RadioButton в ListView? - Программирование Android

03.10.2012, 18:49. Просмотров 2210. Ответов 4
Метки нет (Все метки)

Хочу использовать свой ListView с расположены на нем тремя TextView и RadioButton, для выбора пользователем одного пункта.
Заполняем ListView данными из базы данных, все отрабатывает. Проблема возникает при нажатии на RadioButton, отмечается пункт и не убирается при выборе другого RadioButton, а отмечает еще один пункт.
https://lh3.googleusercontent.com/-h...0/ListView.jpg
Код Activity
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
db = new DB(this);
        db.open();  
        
        c = db.getAllData(DB.DB_TABLE_CAR);
        startManagingCursor(c);
                
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_CAR_BRAND, DB.COLUMN_CAR_MODEL, DB.COLUMN_CAR_ODO };
        int[] to = new int[] { R.id.tvListCarBrand, R.id.tvListCarModel, R.id.tvListCarOdonometr };
        
        // создаем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item_list_cars, c, from, to);
        lvListCar = (ListView) findViewById(R.id.lvListCar);
        lvListCar.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        lvListCar.setAdapter(scAdapter);
Код layout шаблона Item
XML
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
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:orientation="vertical" >
 
        <TextView
            android:id="@+id/tvListCarBrand"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
 
        <TextView
            android:id="@+id/tvListCarModel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />
 
        <TextView
            android:id="@+id/tvListCarOdonometr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:textColorHint="@android:color/white" />
    </LinearLayout>
 
    <RadioButton
        android:id="@+id/rbListCar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="right" />
 
</RelativeLayout>
Код layout
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/tvListCarAdd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:drawableLeft="@drawable/ic_edit_item"
        android:gravity="center_vertical"
        android:text="@string/item_list_cars" />
 
        <ListView
            android:id="@+id/lvListCar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>
</LinearLayout>
Собственно вопрос заключается в том как сделать так что бы выбирался только один RadioButton, как узнать какой именно выбран.
И как задать выбор одного из RadioButton при создании Activity?

Нашел вот тут похожую тему но так и не разобрался(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 18:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как использовать RadioButton в ListView? (Программирование Android):

Как использовать ListView.setHeaderView() - Программирование Android
Есть вот такой layout, описывающий нижнюю половину активити: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout...

RadioButton в ListView - Программирование Android
Есть две разметки одна со списком, другая отвечает за элемент списка в которой присутствует RadioButton. Создал я кастомный адаптер,...

RadioButton, RadioGroup в ListView - Программирование Android
Не пойму я как сделать. Мне надо список из трех элементов radioButton. Вот и чтобы при нажатии на второй элемент с первого снимался...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

RadioButton как обычный Button - Программирование Android
Как сделать чтобы радио баттон выглядел как обычный баттон, но работал как радио баттон? скрин для наглядности:

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

4
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.10.2012, 21:29 #2
Цитата Сообщение от lastm Посмотреть сообщение
Нашел вот тут похожую тему но так и не разобрался(
в чем не разобрался? вроде очень простые советы

1)Use mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Make your custom row view implement Checkable.

2)You must keep a reference to the last checked radio button, and then upon RadioButton.onClick you set the last checked radio button setChecked(false).
also remember to set the newly selected radio button as the last selected radio button.

Добавлено через 59 секунд
первый вариант правильнее.
1
lastm
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 3
04.10.2012, 10:37  [ТС] #3
Проблема в том что я так и сделал как предложено в первом варианте в листинге кода что сверху указано, но RadioButton продолжает себя так же вести(
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.10.2012, 13:25 #4
давайте проджект, проверим что не так...
0
lastm
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 3
04.10.2012, 17:25  [ТС] #5
Я не только начал разбираться в программировании под Android, что именно показать?
В обчем начал переделывать все буду обрабатывать нажатие на элементы списка и менять через него.
0
04.10.2012, 17:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2012, 17:25
Привет! Вот еще темы с ответами:

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Как перевернуть ListView? - Программирование Android
Здравствуйте! Подскажите, пожалуйста, как перевернуть ListView. Чтобы новые элементы, которые добавляются динамически, добавлялись вверх...


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

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

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