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

SetVisibility не работает для RadioGroup - Android

Восстановить пароль Регистрация
 
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
15.08.2016, 21:08     SetVisibility не работает для RadioGroup #1
Здравствуйте. Почему-то команда setVisibility(9) не работает для radioGroup..
Хочу, чтобы при выбранном параметре менялся набор radioButtons. Удалось скрыть их через .xml, но не вернуть в .class. Где косячу?


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
71
72
73
74
75
76
77
78
79
80
81
 public void onRadioClick (View v) {
 
 
        RadioGroup radiogroup1 = (RadioGroup)findViewById(R.id.radioGroup1);
 
        RadioGroup radiogroup2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup radiogroup3 = (RadioGroup)findViewById(R.id.radioGroup3);
        Intent answerIntent = new Intent();
 
        int idM = MainActivity.idM;
        if (idM == 1) {
 
            radiogroup1.setVisibility(0); // так же пробовал setVisibility(View.VISIBLE)
 
            switch (v.getId()) {
                case R.id.radioDog:
                    answerIntent.putExtra(THIEF, "Пёсик");
                    break;
                case R.id.radioCrow:
                    answerIntent.putExtra(THIEF, "Ворона");
                    break;
                case R.id.radioCat:
                    answerIntent.putExtra(THIEF, "Котик");
                    break;
 
                default:
                    break;
 
 
            }
            setResult(RESULT_OK, answerIntent);
            finish();
 
        } else if (idM == 2) {
 
 
 
 
            switch (v.getId()) {
                case R.id.radioSpeeder:
 
                    answerIntent.putExtra(CAR, "Кот гонщик");
                    break;
                case R.id.radioFlyer:
                    answerIntent.putExtra(CAR, "Белка летун");
                    break;
                case R.id.radioZub:
                    answerIntent.putExtra(CAR, "Зубочистка");
                    break;
 
                default:
                    break;
 
            }setResult(RESULT_OK, answerIntent);
            finish();
        } else {
 
 
            switch (v.getId()) {
                case R.id.radioBegemot:
                    answerIntent.putExtra(ARBUZ, "Бегемот");
                    break;
                case R.id.radioRoma:
                    answerIntent.putExtra(ARBUZ, "Рома");
                    break;
                case R.id.radioRain:
                    answerIntent.putExtra(ARBUZ, "Дождь");
                    break;
 
                default:
                    break;
 
 
            }setResult(RESULT_OK, answerIntent);
            finish();
 
        }
 
 
 
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korshun84
13 / 68 / 14
Регистрация: 08.07.2014
Сообщений: 349
16.08.2016, 06:55     SetVisibility не работает для RadioGroup #2
setEnabled() попробуйте.
p.s. Разделом ошиблись.
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
16.08.2016, 08:03  [ТС]     SetVisibility не работает для RadioGroup #3
setEnabled() попробуйте.
p.s. Разделом ошиблись.
Не сработало.
Раздел мне почему-то автоматически поменяли.
ILNAR_93
Android
212 / 212 / 21
Регистрация: 19.01.2013
Сообщений: 1,526
Записей в блоге: 2
16.08.2016, 09:32     SetVisibility не работает для RadioGroup #4
setVisibility(9) - а что должно произойти?

setVisibility(View.GONE) - Для скрытия (скрывает элемент и освобождает место)
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
16.08.2016, 10:08  [ТС]     SetVisibility не работает для RadioGroup #5
SetVisibility(9) - такого не пробовал. А 0 = visible.
К сожалению, view. Gone тоже не сработал у меня. Их как было три в одном, так и осталось. Может, надо каждый radiobutton по отдельности скрывать? Но это как-то дико
ILNAR_93
Android
212 / 212 / 21
Регистрация: 19.01.2013
Сообщений: 1,526
Записей в блоге: 2
16.08.2016, 10:11     SetVisibility не работает для RadioGroup #6
sincov95, а код точно выполняется?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2016, 08:39     SetVisibility не работает для RadioGroup
Еще ссылки по теме:

Android Не работает AutoCompleteTextView для ArrayList собственного класса
Не работает onClickListener для одной из девяти кнопок Android
Android Layout, button, setVisibility
Android AlertDialog и RadioGroup

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

Или воспользуйтесь поиском по форуму:
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
17.08.2016, 08:39  [ТС]     SetVisibility не работает для RadioGroup #7
Если оставить один набор Radio Group, но отправляющий разные значения, то все работает корректно.

Добавлено через 11 часов 21 минуту
Методом тыка заметил в программе, что radiogroup все так удаляются ненужные, но только после того, как я выбрал один из вариантов. Убирается на доли секунд перед отправлением и переходом из активности.. А надо, чтобы сразу.

Добавлено через 11 минут
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package ru.owngames.sherlok;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
 
 
public class MainActivity extends AppCompatActivity {
 
 
 
    static final private int CHOOSE_THIEF = 0;
    static final private int CHOOSE_CAR = 1;
    static final private int CHOOSE_ARBUZ = 2;
    static public int idM;
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
 
 
 
    //MENU
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
 
        int id = item.getItemId();
        TextView questText = (TextView) findViewById(R.id.textQuestion);
        TextView answerText = (TextView)findViewById(R.id.textViewInfo);
 
        //операция для пунктов выбора меню
        switch (id) {
            case R.id.action_question1:
                questText.setText("Кто украл сосиску?");
                answerText.setText("");
                idM = 1;
                return true;
 
            case R.id.action_question2:
                questText.setText("Кто купил машинку?");
                answerText.setText("");
                idM = 2;
                return true;
 
            case R.id.action_question3:
                questText.setText("Кто съел арбуз?");
                answerText.setText("");
                idM = 3;
                return true;
 
            default:
                idM = 1;
                // answerText.setText("");
                return super.onOptionsItemSelected(item);
        }
 
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
 
 
    }
 
 
    public void onClick(View v){
 
 
        Intent questionIntent = new Intent(MainActivity.this,SecondActivity.class);
 
        if (idM == 1){
 
            startActivityForResult(questionIntent, CHOOSE_THIEF);
        }
        else if (idM == 2){
 
            startActivityForResult(questionIntent, CHOOSE_CAR);
        }
        else if(idM == 3){
 
            startActivityForResult(questionIntent, CHOOSE_ARBUZ);
        }
 
 
 
 
 
    }
 
    protected void onActivityResult(int requestCode, int resultCode, Intent data){
        super.onActivityResult(requestCode,resultCode,data);
 
        TextView infoTextView = (TextView)findViewById(R.id.textViewInfo);
 
        if(requestCode == CHOOSE_THIEF){
            if(resultCode == RESULT_OK){
                String thiefname = data.getStringExtra(SecondActivity.THIEF);
                infoTextView.setText(thiefname);
            }else{
                infoTextView.setText("");
            }
        }
 
        if(requestCode == CHOOSE_CAR){
            if(resultCode == RESULT_OK){
                String carname = data.getStringExtra(SecondActivity.CAR);
                infoTextView.setText(carname);
            }else{
                infoTextView.setText("");
            }
        }
        if(requestCode == CHOOSE_ARBUZ){
            if(resultCode == RESULT_OK){
                String arbuzname = data.getStringExtra(SecondActivity.ARBUZ);
                infoTextView.setText(arbuzname);
            }else{
                infoTextView.setText("");
            }
        }
    }
}

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package ru.owngames.sherlok;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import android.widget.TextView;
 
 
public class SecondActivity extends AppCompatActivity {
 
    public final static String THIEF = "ru.owngames.sherlok.THIEF";
    public final static String CAR = "ru.owngames.sherlok.CAR";
    public final static String ARBUZ = "ru.owngames.sherlok.ARBUZ";
 
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
 
 
    }
 
 
 
 
 
 
    public void onRadioClick (View v) {
 
 
        RadioGroup rp1 = (RadioGroup)findViewById(R.id.radioGroup1);
        RadioGroup rp2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup rp3 = (RadioGroup)findViewById(R.id.radioGroup3);
 
 
        Intent answerIntent = new Intent();
 
        int idM = MainActivity.idM;
        if (idM == 1) {
 
 
            rp3.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
 
            switch (v.getId()) {
                case R.id.radioDog:
                    answerIntent.putExtra(THIEF, "Пёсик");
                    break;
                case R.id.radioCrow:
                    answerIntent.putExtra(THIEF, "Ворона");
                    break;
                case R.id.radioCat:
                    answerIntent.putExtra(THIEF, "Котик");
                    break;
 
                default:
                    break;
 
 
            }
            setResult(RESULT_OK, answerIntent);
            finish();
 
        } else if (idM == 2) {
 
 
 
            rp1.setVisibility(View.GONE);
            rp3.setVisibility(View.GONE);
            switch (v.getId()) {
                case R.id.radioSpeeder:
 
                    answerIntent.putExtra(CAR, "Кот гонщик");
                    break;
                case R.id.radioFlyer:
                    answerIntent.putExtra(CAR, "Белка летун");
                    break;
                case R.id.radioZub:
                    answerIntent.putExtra(CAR, "Зубочистка");
                    break;
 
                default:
                    break;
 
            }setResult(RESULT_OK, answerIntent);
            finish();
        } else if (idM == 3){
 
            rp1.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
            switch (v.getId()) {
                case R.id.radioBegemot:
                    answerIntent.putExtra(ARBUZ, "Бегемот");
                    break;
                case R.id.radioRoma:
                    answerIntent.putExtra(ARBUZ, "Рома");
                    break;
                case R.id.radioRain:
                    answerIntent.putExtra(ARBUZ, "Дождь");
                    break;
 
                default:
                    break;
 
 
            }setResult(RESULT_OK, answerIntent);
            finish();
 
        }
 
 
 
    }
 
}
Добавлено через 10 часов 54 минуты
Кому интересно, всё оказалось проще некуда. Изначально ниже написанную часть кода я добавил в метод "onRadioClick" и удивлялся, почему не работало нормально))

Перенес в onCreate и заработало как надо.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 RadioGroup rp1 = (RadioGroup)findViewById(R.id.radioGroup1);
        RadioGroup rp2 = (RadioGroup)findViewById(R.id.radioGroup2);
        RadioGroup rp3 = (RadioGroup)findViewById(R.id.radioGroup3);
 
        if(idM == 1){
            rp3.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
        }
        else if(idM == 2){
            rp1.setVisibility(View.GONE);
            rp3.setVisibility(View.GONE);
        }
        else{
            rp1.setVisibility(View.GONE);
            rp2.setVisibility(View.GONE);
        }
Yandex
Объявления
17.08.2016, 08:39     SetVisibility не работает для RadioGroup
Ответ Создать тему
Опции темы

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