코드를 사용하여 버튼 클릭을 시뮬레이션하는 방법은 무엇입니까?
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
'Programing' 카테고리의 다른 글
html 하이퍼 링크 'a'태그의 기본 링크 색상을 제거하는 방법은 무엇입니까? (0) | 2020.05.01 |
---|---|
줄 바꿈을 제거하지 않고 Ruby에서 여러 줄의 긴 문자열 나누기 (0) | 2020.05.01 |
Selenium WebDriver에서 JavaScript를 사용하여 XPath로 요소를 얻는 방법이 있습니까? (0) | 2020.05.01 |
nginx-nginx : [emerg] bind () ~ [::] : 80 실패 (98 : 이미 사용중인 주소) (0) | 2020.05.01 |
HTML 목록 스타일 형식 대시 (0) | 2020.05.01 |