제목처럼, 눈팅만 하다가 처음으로 글을 작성합니다. 이벤트 코드 작성하는데, 짧은 아이디어가 있어서 말이죠.

구글 안드로이드 개발자 레퍼런스의 OnClickListener 코드 구현 예제에서 보면
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Perform action on click
    }
});

위의 코드와 같이 되어 있는 것을 볼 수 있어요.
이렇게 예제 코드만 의존하여 코드를 작성한다면 나중에는 이벤트 리스너 코드만 줄줄이 나열되게 되죠.
결국에는 코드는 길어지고 알 수 없는 뭔가에 대해서 찝찝한 기분을 느끼게 되는데요.
이 문제에 대해서 조금이나마 코드 가독성 높이기 위해서,
아래처럼 이벤트 리스너를 구현해 보았어요.
이 글, 이 코드는 찜찜한 코드를 어떻게 해서라도 가독성을 높여보자는 것이고,
이벤트 리스너 선언 부분과 처리 부분에 대한 코드를 분리하면 좀 더 보기 편한 코드가 되지 않을까? 하는 막연한 추측이 되겠네요.

물론 Activity를 상속받은 클래스 내부에서 이 직접 구현해도 되겠지만,
따로 분리를 하여 아래의 코드와 같이 작성해 놓으면 한 파일내의 코드가 짧아져 좀 더 보기 편할거란 생각이네요.

package org.example.ImplListener
public class ViewClickListener implements View.OnClickListener {
    public void onClick(View v) {
        // Perform action on click.
    }
}

package org.example;
public class ActionActivity extends Activity {
    protected void onCreate(Bundle saved) {
        super.onCreate(saved);
        setContentView(R.layout.action);

        final Button button = (Button) findViewById(R.id.show);
        button.setOnClickListener(new ViewClickListener());
    }
}

만약 onClickListener이 빈번하게 사용된다면, ActionActivity를 다음과 같이 구현해도 괜찮을 듯 보입니다..
package org.example;
public class ActionActivity extends Activity {
    protected void onCreate(Bundle saved) {
        super.onCreate(saved);
        setContentView(R.layout.action);

        final Button button = (Button) findViewById(R.id.show);
        View.OnClickListener clickListener;

        // ... 중략 ...
        clickListener = new ViewClickListener();
        button.setOnClickListener(clickListener);
    }
}

View.OnClickListener 인터페이스를 선언을 미리 하고, 후에 필요시 생성 하는 거죠. ㅎㅎㅎ