如何在其他按钮上单击以隐藏按钮

时间:2019-06-12 09:38:14

标签: java android button visibility

我有2个显示按钮。 第一个按钮为未按下-在用户单击之前显示的按钮,而第二个按钮在用户单击之后显示的按钮。

用户单击第一个按钮后,他消失了(不可见),然后出现了第二个按钮(Visibility.VISIBLE)。

问题在于用户再次按下按钮后第一个按钮没有出现。第一个按钮不再出现。

那是我尝试过的。

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);
        }
    });
}

我希望在用户再次按下按钮后再次显示第一个按钮。

4 个答案:

答案 0 :(得分:3)

如果希望按下按钮时发生一件事情,而释放按钮时发生另一件事,则不应使用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 :(得分:3)

而不是使用INVISIBLE,请尝试按以下方式使用GONE关键字

eglMakeCurrent

答案 2 :(得分:1)

这里是功能view.getVisibility(),您可以尝试一下。在您的情况下,视图将为按钮

答案 3 :(得分:1)

您的问题尚不清楚。假设您要

1)隐藏Button1并在按下Button1时显示Button2。

2)隐藏Button2并在按下Button2时显示Button1。

下面的代码将帮助您实现这一目标。

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);
        }
    });
}