Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
LexSan
2 / 2 / 0
Регистрация: 09.05.2017
Сообщений: 18
#1

Checkbox and RadioButton проверка состояния - Программирование Android

09.05.2017, 02:35. Просмотров 837. Ответов 29
Метки нет (Все метки)

Доброго дня, вечера и ночи!

http://www.cyberforum.ru/android-dev/thread1447457.html
Заключительная часть: Возможно ли без прописывания слушателя проверить состояние CheckBox по нажатию кнопки: checkbox.isChecked() ?

Основная часть: Все устанавливается и запускается, но при нажатие на кнопку, на телефоне выскакивает, что в приложение обнаружена ошибка. После этого оно закрывается.
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
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
 private TextView m;
 private CheckBox chbox;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button;
        CheckBox chbox;
        button = (Button) findViewById(R.id.button);
        chbox = (CheckBox) findViewById(R.id.checkBox);
 
 m = (TextView) findViewById(R.id.text);
    }
 
   
   
 
   
    public void testCheck(View v) {
       
 
       
      
                if (chbox.isChecked())
                   m.setText("Вкл");
                else
                    m.setText("Выкл");
 
    }
}
Вступление: С программированием под андроид знакомлюсь на ходу. Для своих нужд потребовалось создать приложение.Суть такая: на главном экране в виде таблицы порядка 100 кнопок (даже немного побольше) В зависимости от того, какая нажата кнопка, в другом окне (вроде здесь оно называется activity) выводятся данные. Все бы ничего, но эти данные еще зависит от других параметров. Эти параметры я определил под 3 радиокнопки и 2 чекбокса(причем два чекбокса одновременно не должны быть включены и, по крайней мере, один из них был выбран) Итого 6 различных вариантов. Но вот что-то с проверкой состояния не задалось. Для тренировки создал тестовый проект с кнопкой Button и текстовым полем TextView, но и там меня постиг крах. Буду признателен, если мне покажут на мои ошибки и направят на путь истинный
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2017, 02:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Checkbox and RadioButton проверка состояния (Программирование Android):

Как передать сервису состояния checkbox из MainActivity?
Есть service который запускается из MainActivity и в определённое время...

Проверка состояния checkbox
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD>...

Проверка состояния checkbox в datagrid
Есть тест, нужно определить какой вариант ответа выбран в каждом вопросе. Как...

Проверка состояния множества CheckBox наиболее оптимальным способом
Ребят, а как работать с чекбоксами когда их много? Когда он один понятно, If...

Запоминание состояния radiobutton'ов
Всем привет! То ли не спал много, то ли действительно сложно. В общем ребята...

29
LexSan
2 / 2 / 0
Регистрация: 09.05.2017
Сообщений: 18
11.05.2017, 15:09  [ТС] #21
vxg, спасибо вам большое! Через пару часов проверю. А можете объяснить почему мы убираем button = (Button) findViewById(R.id.button); ?
0
vxg
Модератор
3229 / 2032 / 319
Регистрация: 13.01.2012
Сообщений: 7,884
11.05.2017, 15:30 #22
LexSan, а вы эту ссылку где-то используете? я не увидел где вы ее используете поэтому убрал
0
LexSan
2 / 2 / 0
Регистрация: 09.05.2017
Сообщений: 18
11.05.2017, 15:42  [ТС] #23
vxg, В основном проекте -это используется для определения, какая конкретно кнопка была нажата
0
Pablito
2645 / 2127 / 726
Регистрация: 12.05.2014
Сообщений: 7,436
Завершенные тесты: 1
11.05.2017, 15:43 #24
около 100 кнопок и у каждой прописано testClick значит что будет создано около 100 OnClickListener-ов
это не смертельно, но от души и зря тратится память
1
LexSan
2 / 2 / 0
Регистрация: 09.05.2017
Сообщений: 18
11.05.2017, 21:29  [ТС] #25
Паблито, да понимаю, что очень ресурсоемко, но необходимо получить информацию в течении 10-15 секунд и если кнопки распределить на нескольких activity,то прыгая по ним невозможно будет успеть. Поэтому я выбрал такой подход. Не знаю насколько это облегчит память, но на все кнопки у меня одно событии onClick

Добавлено через 4 часа 19 минут
Цитата Сообщение от Vladimir93 Посмотреть сообщение
А попробуйте унаследоваться просто от Activity
Error: (9, 35) error: cannot find symbol class Activity выходит такая ошибка

Добавлено через 3 минуты
Цитата Сообщение от vxg Посмотреть сообщение
подозреваю что в вашей разметке нет tools:context=".MainActivity"
tools:context="com.example.fedor.testcheck.MainActivity"> присутствует
Java
1
tools:context="com.example.fedor.testcheck.MainActivity">
, но все равно ничего не получилось. Дело видно в моих кривых руках

Добавлено через 3 минуты
По просьбе трудящихся:
Разметка
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.fedor.testcheck.MainActivity">
 
 
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_below="@+id/checkBox"
        android:layout_alignRight="@+id/checkBox"
        android:layout_alignEnd="@+id/checkBox"
        android:layout_marginTop="51dp"
        android:onClick="testCheck"/>
 
    <CheckBox
        android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CheckBox" />
 
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/checkBox"
        android:layout_marginLeft="56dp"
        android:layout_marginStart="56dp"
        android:layout_marginTop="15dp"
        android:layout_toEndOf="@+id/checkBox"
        android:layout_toRightOf="@+id/checkBox"
        android:text="TextView" />
</RelativeLayout>
Код:
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
package com.example.fedor.testcheck;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
    private TextView m;
    private CheckBox chbox;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        chbox = (CheckBox) findViewById(R.id.checkBox);
 
        m = (TextView) findViewById(R.id.text);
    }
 
 
 
    public void testCheck(View v) {
 
 
        if (chbox.isChecked())
            m.setText("Вкл");
        else
            m.setText("Выкл");
 
    }
}
Добавлено через 1 час 8 минут
Всем большое спасибо, что терпели меня. Убрал все лишнее и в методе просто прописал:
Java
1
2
3
4
5
6
7
public void testCheck(View v) {
        TextView textView= (TextView) findViewById(R.id.textView);
        CheckBox checkBox=(CheckBox) findViewById(R.id.checkBox);
        if (checkBox.isChecked())
            textView.setText("Вкл");
        else
           textView.setText("Выкл");
И все заработало
0
vxg
Модератор
3229 / 2032 / 319
Регистрация: 13.01.2012
Сообщений: 7,884
11.05.2017, 22:07 #26
LexSan, у меня и так все работало, получение ссылок в методе это масло масляное но мы конечно рады что вы удалили нечто непонятное что лишнее и оно заработало хоть так
0
LexSan
2 / 2 / 0
Регистрация: 09.05.2017
Сообщений: 18
11.05.2017, 22:26  [ТС] #27
Лишнее это - private CheckBox chb; private TextView m; и т.д что уже не использовалось в проекте.
Я и сам не понимаю, почему в предыдущем варианте у меня при нажатие на кнопку вылетало с ошибкой. Кривые руки тому виной, наверное что-то упустил из виду, хотя вы вроде все скопировали и у вас все запустилось
0
Vladimirys
312 / 209 / 27
Регистрация: 16.01.2010
Сообщений: 610
12.05.2017, 00:32 #28
Так у вас в итоге, разные все такие idишки были то? В вашем первом примере так
Java
1
m = (TextView) findViewById(R.id.text);
А в рабочем, и в разметке, уже вот так.
Java
1
TextView textView= (TextView) findViewById(R.id.textView)
2
LexSan
2 / 2 / 0
Регистрация: 09.05.2017
Сообщений: 18
12.05.2017, 06:53  [ТС] #29
Vladimirys, спасибо! Не только с руками у меня проблема, но и с глазами. Исправил и... О чудо - все заработало.
1
vxg
12.05.2017, 07:17     Checkbox and RadioButton проверка состояния
  #30

Не по теме:

LexSan, ужас)

0
12.05.2017, 07:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2017, 07:17
Привет! Вот еще темы с ответами:

Активность TextBox в зависимости от состояния Radiobutton
Помогите пожайлуйста, есть 2 радиобатона, текстбокс, одна кнопка,нужно чтобы...

Как сделать проверку состояния RadioButton?
Как сделать проверку на Radiobutton(chacked)?

Enum: Выбор значения в зависимости от состояния RadioButton
У меня есть enum: public enum DeliveryTimeTypes { ...

Заполнение и вывод текста ListBox в зависимости от состояния RadioButton
Цель: при клике на 1 переключатель выводить в листбокс Item1, item2, при клике...


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

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

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