달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
728x90
반응형

안드로이드 - Click Listener 변화


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 에서 이루어진 여러가지 개선 사항들이 유용하길 바라고, 안드로이드 마켓에서 여러분들의 어플리케이션을 만나보길 기대한다.

728x90
반응형
:
Posted by mapagilove