코드를 사용하여 버튼 클릭을 시뮬레이션하는 방법은 무엇입니까?
안드로이드에서 코드를 사용하여 버튼 클릭 이벤트를 트리거하려면 어떻게 해야 합니까?다른 이벤트가 발생할 때 버튼 클릭을 프로그래밍 방식으로 트리거하고 싶습니다.
내가 직면한 동일한 문제
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()
이것이 당신의 모든 문제에 대답할 것입니다.Button, Spinner 등의 모든 View가 이 기능을 상속합니다.
확인하기 위해 View에는 정적 performClick() 메서드가 없습니다.View 인스턴스에서 performClick()을 호출해야 합니다.예를 들어, 당신은 그냥 전화할 수 없습니다.
View.performClick();
대신 다음과 같은 작업을 수행합니다.
View myView = findViewById(R.id.myview);
myView.performClick();
달빛 치즈가 언급한 것을 명확히 하기 위해:Android에서 코드를 통해 버튼 클릭 이벤트를 트리거하려면 다음을 제공합니다.
buttonName.performClick();
당신은 이런 식으로 할 수 있습니다.
private Button btn;
btn = (Button)findViewById(R.id.button2);
btn.performClick();
다음과 같은 간단한 코드 줄을 작성하면 됩니다.
button.performClick();
여기서 button은 Button 클래스의 기준 변수이며 다음과 같이 정의됩니다.
private Button buttonToday ;
buttonToday = (Button) findViewById(R.id.buttonToday);
바로 그겁니다.
안드로이드의callOnClick()
(API 15에 추가됨)는 때때로 제 경험에서 더 나은 선택이 될 수 있습니다.performClick()
사용자가 선택 소리를 활성화한 경우performClick()
사용자가 서로 어느 정도 겹친 두 개의 연속 선택 소리를 들을 수 있어 거슬릴 수 있습니다. (한 선택 소리는 사용자의 첫 단추 클릭에 사용되고 다른 선택 소리는 다른 단추 클릭에 사용됩니다.)OnClickListener
코드를 통해 전화하는 것입니다.)
API15를 시작으로 다음과 같은 기능도 사용할 수 있습니다.callOnClick()
연결된 보기 OnClickListener를 직접 호출합니다.performClick()과는 달리 수신기만 호출하고 내게 필요한 옵션 이벤트 보고와 같은 관련 클릭 작업은 수행하지 않습니다.
사용하지 않는 경우sender
인수, 버튼 핸들러 구현을 리팩터링하여 기능을 분리하고 원하는 곳(버튼 핸들러와 다른 곳)에서 호출하는 것이 어떻습니까?
어쨌든, 그것은 더 낫고 깨끗한 디자인입니다. 버튼 핸들러와 다른 곳에서 호출해야 하는 코드는 자체 기능으로 리팩터링할 가치가 있습니다.또한 UI 처리와 응용 프로그램 로직 코드를 분리하는 데 도움이 됩니다.또한 DateSelectedButtonClick()에만 있는 것이 아니라 기능에 대한 좋은 이름을 갖게 됩니다.
언급URL : https://stackoverflow.com/questions/4553374/how-to-simulate-a-button-click-using-code
'programing' 카테고리의 다른 글
MySQL : 청크별로 큰 선택 항목 검색 (0) | 2023.09.05 |
---|---|
관찰 가능한 오류를 수동으로 발생시키는 방법은 무엇입니까? (0) | 2023.09.05 |
Angular2 http 서비스를 사용하여 결과 캐싱 (0) | 2023.09.05 |
MariaDB 마스터에서 마스터로의 복제 자동 증분이 순차적이지 않음 (0) | 2023.09.05 |
데이터베이스의 결과 페이지화는 어떻게 작동합니까? (0) | 2023.09.05 |