개발/안드로이드

안드로이드 버튼 활성화/비활성화 (일시적 비활성화)

GRONG 2022. 8. 18. 13:44

안녕하세요, 그롱입니다


이번 글은 안드로이드에서 버튼 누르는 것을 막고자 할 때 사용할 수 있는 방법에 대해서 말씀드리겠습니다
추가로 버튼을 누른 후에 몇 초간만 일시적으로 막고 싶을 때 쓸 수 있는 방법도 포함합니다!

버튼 활성화/비활성화

대표적인 코드로 사용하고 있는 버튼명에 setEnabled() 속성을 설정하면 됩니다

비활성화

yourButton.setEnabled(false)

활성화

yourButton.setEnabled(true);

이렇게 하면 기본적으로 안드로이드 버튼을 활성화/비활성화할 수 있습니다

하지만 누르고 몇 초간 버튼 입력을 막고 싶다면?


버튼 일시적 비활성화

안드로이드의 실행 지연 구조인 postDelayed를 활용하면 됩니다

new Handler().postDelayed(new Runnable(){   
                                            
    @Override                               
    public void run()                       
    {
    
    }                                       
                                            
}, milisecond);

이 코드는 run() 안에 실행할 문장을 넣고
millisecond 자리에 1초 기준=1000의 정수를 써주시면
millisecond 이후로 run() 안의 문장이 실행됩니다

이걸 기초로

yourButton.setOnClickListener(new View.OnClickListener()
{                                                       
    @Override                                           
    public void onClick(View view)                      
    {                                                   
        yourButton.setEnabled(false); //버튼 비활성화         
                                                        
        new Handler().postDelayed(new Runnable(){       
                                                        
            @Override                                   
            public void run()                           
            {                                           
                yourButton.setEnabled(true);   //버튼 활성화 
                Log.d(TAG,"yourButton has Enabled");    
            }                                           
                                                        
        }, 3000); //run 안의 문장들을 3초 후 실행                 
    }                                                   
});

이런 구조를 만들어주면

버튼을 누를 시 비활성화 → 3초 지연 후 다시 활성화의 과정을 거쳐
일시적으로 버튼을 비활성화할 수 있습니다


도움이 됐으면 좋겠습니다!
좋은 하루 보내세요 :)