Как настроить ToggleButton для изменения текста?

Доброго дня!

Имеем: 6 Button, 1 ToggleButton, 1 TextView, и массив Array.
При нажатии одной из 6 кнопок, в TextView показывается информация.
Если перевести ToggleButton в значение true, при нажатии на эти же 6 кнопок будет выходит противоположная информация.
Все данные для TextView берутся из массива.

Теперь столкнулся с такой проблемой. Я нажимаю кнопку (например btnP) и в TextView выходит текст. После этого я нажимаю на ToggleButton и на экране ничего не происходит. Потом я снова нажимаю на эту же btnP и выводится другая информация.

Как сделать так, что бы при нажатии ToggleButton информация уже показанная в TextView сразу менялась на противоположную?

Мой код
Bundle extraArray = getIntent().getBundleExtra("extraArray");
        ArrayList<Integer> Array = (ArrayList<Integer>) extraRunes.getSerializable("Array");

        assert Array != null;
        TextView.setText(Array.get(1));
        iP = 1;
        iL = 3;
        iC = 5;
        iT = 7;
        iH = 9;
        iW = 11;
    }
    @Override
    public void onClick(View v) {

        Bundle extraArray = getIntent().getBundleExtra("extraArray");
        ArrayList<Integer> Array = (ArrayList<Integer>) extraArray.getSerializable("Array");

        assert Array != null;
        switch (v.getId()) {
            case R.id.btnP:
                TextView.setText(Array.get(iP));
                break;
            case R.id.btnL:
                TextView.setText(Array.get(iL));
                break;
            case R.id.btnC:
                TextView.setText(Array.get(iC));
                break;
            case R.id.btnT:
                TextView.setText(Array.get(iT));
                break;
            case R.id.btnH:
                TextView.setText(Array.get(iH));
                break;
            case R.id.btnW:
                TextView.setText(Array.get(iW));
                break;
        }

    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        boolean checked = tbFlip.isChecked();
        Bundle extraArray = getIntent().getBundleExtra("extraArray");
        ArrayList<Integer> Array = (ArrayList<Integer>) extraRunes.getSerializable("Array");

        if (checked) {
            assert Array != null;
            iP = 2;
            iL = 4;
            iC = 6;
            iT = 8;
            iH = 10;
            iW = 12;

        } else {
            assert Array != null;
            iP = 1;
            iL = 3;
            iC = 5;
            iT = 7;
            iH = 9;
            iW = 11;
        }

  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Очевидно, надо взять и руками установить нужный текст. Баттоны вообще не в курсе, что ты из массива в них текст ставишь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы