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 ()
이것은 모든 문제에 답해야합니다. Button, Spinner 등을 포함하여 모든 View는이 기능을 상속합니다.
명확히하기 위해 View에는 정적 performClick () 메서드가 없습니다. View 인스턴스에서 performClick ()을 호출해야합니다. 예를 들어 전화를 걸 수는 없습니다
View.performClick();
대신 다음과 같은 작업을 수행하십시오.
View myView = findViewById(R.id.myview);
myView.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 ()뿐만 아니라 함수의 이름도 좋습니다.