Easier click listeners
GUI 개발하는 도중, 여러 Button 에 적합한 Click Listener 를 설정 하는 일이 자주 일어난다. 하지만 이 작업은 좀 상투적인 코드를 요구하곤 한다.
findViewById(R.id.myButton).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do stuff
}
});
이러한 코드의 양을 줄이기 위해, 하나의 Click Listener 만을 생성한 후, 여러개의 Button 들이 해당 Listener 를 공유하게 할 수도 있다. 이러한 방식이 생성되는 클래스의 수를 줄이는데는 도움이 될 수 있지만, 여전히 제법 많은 양의 코드가 필요하고, Click Listener 를 설정하기위하여, XML 레이아웃 상 모든 Button 들에게 ID 를 부여해 주어야 한다.
View.OnClickListener handler = View.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
case R.id.myButton: // doStuff
break;
case R.id.myOtherButton: // doStuff
break;
}
}
}
findViewById(R.id.myButton).setOnClickListener(handler);
findViewById(R.id.myOtherButton).setOnClickListener(handler);
그러나, 안드로이드 1.6에서 더이상 이런 작업을 할 필요가 없다. 개발자는 자신이 작성한 Activity 에 Click 이벤트를 처리하기위한 메서드만을 구현해 주면 된다. (이 메서드는 반드시 하나의 View 를 인자로 받는 형식의 메서드여야 한다.)
class MyActivity extends Activity {
public void myClickHandler(View target) {
// Do stuff
}
}
그리고, XML 레이아웃 상에서 앞서 구현한 메서드를 직접 참조해 준다.
<Button android:onClick="myClickHandler" />
이 새로운 방법은 개발자가 작성해야 하는 Java 와 XML 코드의 양 모두를 줄여 주며, 개발자가 어플리케이션 개발에 보다 많은 시간을 사용할 수 있도록 해 준다.
안드로이드 팀은 개발자들이 어플리케이션을 가장 쉽고 효율적으로 작성할 수 있도록 최선을 다하고 있다. 우리는 1.6 에서 이루어진 여러가지 개선 사항들이 유용하길 바라고, 안드로이드 마켓에서 여러분들의 어플리케이션을 만나보길 기대한다.