Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Layout, button, setVisibility

Как скрыть одну кнопку - понятно, но вот проблема.... как скрыть сразу целую группу кнопок. В идеале было бы скрыватьих целыми Layout на которых они располагаются. Но как это сделать?
Ответ: Спасибо! Работает!
Вопрос: SetVisibility не работает для RadioGroup

Здравствуйте. Почему-то команда 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();
 
        }
 
 
 
    }
Ответ: Если оставить один набор 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);
        }
Вопрос: Найти Button в PreferenceActivity

Надо скрыть кнопку в PreferenceActivity. Не могу ее поймать, почему то null.
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class SettingsActivity extends PreferenceActivity {
    public static class AboutPreferenceFragment extends PreferenceFragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View result = super.onCreateView(inflater, container, savedInstanceState);
            if (result != null) {
                View lv = result.findViewById (android.R.id.list);
                Button  button = (Button) lv.findViewById(R.id.upgrade);
                button.setVisibility(Button.GONE); //  java.lang.NullPointerException
            }
            return result;
        }
 
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.pref_about);
            Preference aboutPref = (Preference) findPreference("about");
            aboutPref.setLayoutResource(R.layout.activity_about_);
        }
}
Ответ: _Night_Scream_,
Например в планшетах где места много и PreferenceActivity состоит из двух панелей. Там кнопка сама просится.
В обычных телефонах там да, кнопка на другой активити находится.

Добавлено через 45 минут
такая же проблема, как я понял решения нет.
Мне надо при определенных условиях скрывать эту кнопку. Пока решение - использовать разные layout.
Вопрос: Button & ImageButton

в чем разница между Button и ImageButton?
и как сделать кликабельный контрол, но чтоб область клика была произвольной формы?
Ответ: serjufa1, я думаю скомпоновать это как отдельный layout проще.
Вопрос: Android layout

Доброго времени суток. Подскажите пожалуйста.
Проблема такая, есть Activity с кнопками и т. д., по нажатию на кнопку открывается полупрозрачный Layout
с определённым выбором. Так вот при нажатии на этот Layout кнопки на заднем плане нажимаются. Как сделать так
чтобы задний фон был виден но на нажатия не реагировал. Делать Layout кликабельным пробовал и пустой
onClick на него вешал - не помогает.
Заранее спасибо!
Ответ: Просто добавлю, что свойство clickable=true нужно установить именно на перекрывающий полупрозрачный layout. Ну а вообще - скорее всего вам подойдут диалоги
Вопрос: Смена фона layout

Мне необходимо реализовать смену фона layout. Например существует два layout в main_activity, id которых lay1 и lay2 . Как мне сделать так ,чтобы при нажатии на одну кнопку менялся цвет у lay1 ,а при нажатии на другую менялся бы цвет lay2. Цвет например #000000 (чёрный) . При этом оба layout'a могут быть чёрными.
Ответ:
Java
1
layout.setBackgroundColor(Color.parseColor("#000000"));
Вопрос: После анимации открывать другой layout

необходимо, чтобы после анимации открывался другой layout

Код Java(TM) 2 Platform Standard Edition 5.0
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.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.os.Handler;
 
 
public class MainActivity extends ActionBarActivity {
 
    Handler handler;
    ImageView img;
    Intent intent = new Intent(this, choose_language.class);
    @Override
    public void onCreate(Bundle savedInstanceState) {
 
        Animation anim = null;
        anim = AnimationUtils.loadAnimation(this, R.anim.myalpha);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        img = (ImageView) findViewById(R.id.img);
        img.startAnimation(anim);
        handler = new Handler();
        task.run();
 
       // Intent intent = new Intent(this, choose_language.class);
        //  startActivity(intent);
    }
 
    Runnable task = new Runnable() {
        public void run() {
            startActivity(intent);
            handler.postAtTime(this, 3000);
        }
    };
}
Ответ: contedevel, кажется, я где-то свернул не туда и все перестало работать) выручайте)
Код Java(TM) 2 Platform Standard Edition 5.0
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
public class MainActivity extends ActionBarActivity {
 
    ImageView img;
    Animation alpha = null;
 
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        alpha = AnimationUtils.loadAnimation(this, R.anim.alpha);
        img = (ImageView) findViewById(R.id.img);
        img.startAnimation(alpha);
        
 
 
        alpha.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
            }
 
            @Override
            public void onAnimationEnd(Animation animation) {
                Intent intent = new Intent(MainActivity.this, fourthActivity.class);
                startActivity(intent);
            }
 
            @Override
            public void onAnimationRepeat(Animation animation) {
            }
        });
    }
}
Добавлено через 10 минут
contedevel аее! все классно) спасибо, работает
Вопрос: Обновление/перезапуск layout по нажатию

необходимо, чтобы по нажатию обновлялся/перезапускался layout. как организовать?
Ответ:
Цитата Сообщение от maksim94 Посмотреть сообщение
чтобы по нажатию обновлялся/перезапускался layout
Значит неправильно написали.
Слушайте кнопку и меняйте значения как YuraAAA написал.
Вопрос: Как из activity_main_drawer открыть layout файлы?

как из activity_main drawer открыть layout файлы?
Ответ:
Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
public void onClic(View view){
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
Это переход между экранами , в MainActivity2 в методе setContentView(R.layout. list_news);
Вопрос: Как сделать, чтобы определенный layout включался при определенном языке?

К примеру у меня приложение на 3 языках.
Как сделать чтобы когда я включал русский язык, показывался другой layout вместо изначально?
Вобщем заменение страницы с определенным языком?
Ответ: Паблито, согласен с тем что правильно делать локализацию через ресурсы. ибо
It is better to create a single layout that is more flexible
просто высказал вслух идею почему может быть нужным то что хочет ТС

Добавлено через 1 минуту
про локализацию


Добавлено через 2 минуты
вот тут еще больше