簡體   English   中英

如何在其他按鈕上單擊隱藏按鈕

[英]How to get invisible button on other button click

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

我希望用戶再次按下按鈕后,第一個按鈕將再次出現。

如果您希望在按下按鈕時發生一件事情,而在釋放按鈕時發生另一件事,則不應使用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;
    }
});

注意:您的英語有點混亂。 我認為這就是您想要的(按/釋放按鈕),但也許我不完全了解您...

這是view.getVisibility()函數,您可以嘗試一下。 在你的情況下,視圖將是按鈕

您的問題尚不清楚。 假設您要

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

代替使用INVISIBLE,嘗試使用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);
        }
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM