Programing

코드를 사용하여 버튼 클릭을 시뮬레이션하는 방법은 무엇입니까?

lottogame 2020. 5. 1. 08:02
반응형

코드를 사용하여 버튼 클릭을 시뮬레이션하는 방법은 무엇입니까?


Android에서 코드를 사용하여 버튼 클릭 이벤트를 트리거하려면 어떻게해야합니까? 다른 이벤트가 발생할 때 버튼 클릭을 프로그래밍 방식으로 트리거하고 싶습니다.

같은 문제가 있습니다.

public void onDateSelectedButtonClick(View v){
    /*Something  Alarm Management 
    http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm
    copied code from this site*/
}

버튼 코드 :

<Button
    android:onClick="onDateSelectedButtonClick"
    android:text="Set notification for this date" />

하지만 OnClickEvent없이 해당 함수 OnLoadLayout을 호출하고 싶습니다.


더 좋은 방법이 있습니다.

View.performClick();

http://developer.android.com/reference/android/view/View.html#performClick ()

이것은 모든 문제에 답해야합니다. 모든 뷰는 버튼, 스피너 등을 포함하여이 기능을 상속합니다.


moonlightcheese가 말한 것을 명확히하기 위해 : Android의 코드를 통해 버튼 클릭 이벤트를 트리거하려면 다음을 제공하십시오.

buttonName.performClick();

이 방법으로 할 수 있습니다

private Button btn;
btn = (Button)findViewById(R.id.button2);
btn.performClick();

안드로이드 callOnClick()( API 15에 추가 )가 때로는 내 경험보다 낫습니다 performClick(). 사용자가 선택 음이 활성화 된 경우, 사용자가 performClick()서로 약간 겹쳐서 두 개의 연속적인 선택 음이 들릴 수 있습니다. (사용자의 첫 번째 버튼 클릭에 대한 하나의 선택 사운드, OnClickListener코드를 통해 호출 하는 다른 버튼에 대한 선택 사운드 )


이 간단한 코드 줄을 작성하십시오.

button.performClick();

여기서 button은 Button 클래스의 참조 변수이며 다음과 같이 정의됩니다.

private Button buttonToday ;
buttonToday = (Button) findViewById(R.id.buttonToday);

그게 다야.


API15부터는 callOnClick()연결된보기 OnClickListener를 직접 호출 하는 것도 사용할 수 있습니다 . performClick ()과 달리 리스너 만 호출하며 액세서 빌 러티 이벤트보고와 같은 연관된 클릭 조치는 수행하지 않습니다.


sender인수를 사용하지 않는 경우 버튼 처리기 구현을 리팩터링하여 함수를 분리하고 원하는 곳에서 (버튼 처리기 및 다른 위치에서) 호출하십시오.

어쨌든, 그것은 더 좋고 깔끔한 디자인입니다-버튼 처리기에서 호출 해야하는 코드이며 다른 곳에서 함수를 리팩토링해야합니다. 또한 UI 처리를 응용 프로그램 논리 코드와 분리하는 데 도움이됩니다. onDateSelectedButtonClick ()뿐만 아니라 함수의 이름도 좋습니다.

참고 URL : https://stackoverflow.com/questions/4553374/how-to-simulate-a-button-click-using-code

반응형