Установить кнопку в GONE изначально?

Мне нужно, чтобы эта кнопка промаха была Унесена на начальном экране, затем появлялась при переключении кнопки переключения, и снова становилась УДАЛЕНО при повторном переключении.

Проблема, которая сохраняется, состоит в том, что кнопка не исчезла изначально на начальном экране, мне нужно дважды нажать кнопку переключения, чтобы она исчезла.

вот код:

toggle = (ToggleButton) findViewById(R.id.bRedGreen);
    toggle.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            pluskugle = (Button) findViewById(R.id.bBallhole);
            minuskugle = (Button) findViewById(R.id.bBallhole);

            pluskegle = (Button) findViewById(R.id.bKegle);
            minuskegle = (Button) findViewById(R.id.bKegle);

            plusmidkegle = (Button) findViewById(R.id.bKeglemid);
            minusmidkegle = (Button) findViewById(R.id.bKeglemid);

            bottomlayout = (LinearLayout) findViewById(R.id.bottomlayout);

            miss = (Button) findViewById(R.id.bMiss);

        if(toggle.isChecked())
        {
            minuskugle.setBackgroundResource(R.drawable.redballinhole);
            minuskegle.setBackgroundResource(R.drawable.redkegle);
            minusmidkegle.setBackgroundResource(R.drawable.midkegleminus);
            miss.setBackgroundResource(R.drawable.missbutton);

            miss.setVisibility(View.VISIBLE);

        }

        else 
        {
            pluskugle.setBackgroundResource(R.drawable.whiteballinhole);
            pluskegle.setBackgroundResource(R.drawable.kegleb);
            plusmidkegle.setBackgroundResource(R.drawable.midkegleplus);
            miss.setVisibility(View.GONE);

        }

        }

    });
}

4 ответа

Решение

Поведение, которое вы видите, является результатом двух вещей:

- Причина, по которой кнопка изначально видима, заключается в том, что в вашем XML нет android: visibility = "lost", а код для его установки невидимым не сработал, потому что ни одного клика еще не произошло.

Причина, по которой вам приходится дважды нажимать кнопку-переключатель, чтобы установить ее в невидимое состояние: первый щелчок переключает переключатель с не отмеченного на проверенный, поэтому код устанавливает кнопку (которая уже видна) для отображения. ВТОРОЙ щелчок - это первый раз, когда срабатывает onClick, а кнопка переключения не проверяется. Вот когда вы на самом деле видите, как кнопка становится невидимой.

Чтобы исправить это, просто добавьте "android:visibility="GONE"в качестве атрибута к кнопке" пропустить "в XML-макете.

Вы можете установить его видимость в вашем макете с Android:visibility="ушел"

В XML для bMiss

добавлять android:visibility:"gone"

Я бы посоветовал вам переместить все ваши методы findViewById из метода переключения toClick в метод onCreate или инициализации. Тогда под вашим:

miss = (кнопка) findViewById(R.id.bMiss);

положил:

miss.setVisibility (View.INVISIBLE);

или же

miss.setVisibility(View.GONE);

Другие вопросы по тегам