Как получить невидимую кнопку при нажатии на другую кнопку - PullRequest
1 голос
/ 12 июня 2019

У меня есть 2 кнопки для отображения.1-я кнопка не нажата - она ​​отображается до того, как пользователь нажимает на нее, и 2-я кнопка нажимается, которая отображается после того, как пользователь нажимает на нее.

После того, как пользователь нажал на 1-ю кнопку, он исчез (НЕВИДИМ), изатем появляется вторая кнопка (Visibility.VISIBLE).

Проблема в том, что первая кнопка не появляется после того, как пользователь снова нажимает кнопку.1-я кнопка больше не появляется.

Это то, что я пробовал.

private void initFunctionality() {
    startPlayPressed.setVisibility(View.INVISIBLE);
    startPlay.setVisibility(View.VISIBLE);
    startPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            startPlay.setVisibility(View.INVISIBLE);
            startPlayPressed.setVisibility(View.VISIBLE);
            imageView.startAnimation(animation);

            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    ActivityUtilities.getInstance().invokeNewActivity(SplashActivity.this, MainActivity.class, true);
                }
            }, 500);
        }
    });
}

Я хочу, чтобы 1-я кнопка снова появилась после того, как пользователь снова нажмет кнопку.

Ответы [ 4 ]

3 голосов
/ 12 июня 2019

Если вы хотите, чтобы одна вещь произошла, когда вы нажали кнопку, и произошла другая вещь, когда вы отпустили кнопку, вы не должны использовать ClickListener.Вы должны использовать onTouchListener .

Пример:

startPlay.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction()==MotionEvent.ACTION_DOWN){
            // User pressed the button. What should happen here?
        }else if (event.getAction()==MotionEvent.ACTION_UP){
            // User released the button. What should happen now?
        }
        return true;
    }
});

Примечание: Ваш английский немного сбивает с толку.Я предполагаю, что это то, что вы хотите (нажмите / отпустите кнопку), но, возможно, я вас не полностью понял ...

1 голос
/ 12 июня 2019

Ваш вопрос несколько неясен.Предполагая, что вы хотите,

1) Скрыть Button1 и показать Button2 при нажатии Button1.

2) Скрыть Button2 и показать Button1 при нажатии Button2.

Ниже кодапоможет вам достичь этого.

private void initFunctionality() {
    startPlayPressed.setVisibility(View.INVISIBLE);
    startPlay.setVisibility(View.VISIBLE);

    startPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            startPlay.setVisibility(View.INVISIBLE);
            startPlayPressed.setVisibility(View.VISIBLE);
            imageView.startAnimation(animation);

            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    ActivityUtilities.getInstance().invokeNewActivity(SplashActivity.this, MainActivity.class, true);
                }
            }, 500);
        }
    });

    startPlayPressed.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            startPlay.setVisibility(View.VISIBLE);
            startPlayPressed.setVisibility(View.INVISIBLE);
            imageView.startAnimation(animation);

            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    //Do whatever you want
                }
            }, 500);
        }
    });
}
1 голос
/ 12 июня 2019

Вот функция view.getVisibility(), вы можете попробовать ее.В вашем случае вид будет кнопка

0 голосов
/ 12 июня 2019

Вместо использования невидимого попробуйте использовать ключевое слово GONE, как показано ниже

private void initFunctionality() {
    startPlayPressed.setVisibility(View.GONE);
    startPlay.setVisibility(View.VISIBLE);
    startPlay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            startPlay.setVisibility(View.GONE);
            startPlayPressed.setVisibility(View.VISIBLE);
            imageView.startAnimation(animation);

            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    ActivityUtilities.getInstance().invokeNewActivity(SplashActivity.this, MainActivity.class, true);
                }
            }, 500);
        }
    });
}
...