안녕하세요. 테랑입니다. 이번에는 Android 에서 Event Listener 를 사용하는 세가지 방법에 대해 알아 보도록 하겠습니다.
일반적으로 Android 를 처음 배우거나, 가시적인(?) 코딩을 하기위해서는 아래와 같은 방법을 사용하곤 합니다.
1. 생성된 View Object 에 직접 Listener 를 구현
소스보기 접기
public class FragmentActivity extends Activity {
private Button btnListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
Log.d("FragmentActivity", "Init Fragment Activity!!");
btnListener = (Button) findViewById(R.id.btnListener);
btnListener.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(this, "Event Listener!!", Toast.LENGTH_LONG).show();
}
});
}
}
접기
이 방법은 가장 간단하고 (키워드만 넣어도 IDE 에서 자동 생성해 주기까지 하죠!!) 가시적입니다. 그렇지만 저런 Button 이나 Event 가 발생되어야 할 것들이 많은 경우 너무 많은 코드를 입력해야 하는 불편한 점이 있죠 그래서 저는 아래와 같은 방법을 가장 많이 사용합니다.
2. Listener 를 implement 하고 해당 Listener 의 Method 를 구현
소스보기 접기
public class FragmentActivity extends Activity implements View.OnClickListener {
private Button btnListener01;
private Button btnListener02;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
Log.d("FragmentActivity", "Init Fragment Activity!!");
btnListener01 = (Button) findViewById(R.id.btnListener01); btnListener02 = (Button) findViewById(R.id.btnListener02);
btnListener01.setOnClickListener(this ); btnListener02.setOnClickListener(this );
}
@Override public void onClick(View v) {
// switch 문을 이용하여, 각 Button 별로 다른 Event 가 수행되도록 한다.
switch (v.getId() ) {
case R.id.btnListener01 :
Toast .makeText(this, "Event Listener 01!!", Toast.LENGTH_LONG).show();
break;
case R.id.btnListener02 :
Toast .makeText(this, "Event Listener 02 !!", Toast.LENGTH_LONG).show();
break; }
}
}
접기
버튼이 두개 밖에 없어서 1번 보다 복잡해 보일 수 있지만, View Object 들이 많아질 수록 굉장히 편하게 사용할 수 있습니다. 그리고 마지막으로 Listener 를 객체로 생성 후에 할당하는 방법을 말씀 드리겠습니다.
3. Listener 객체를 생성 후 View Object 에 할당하기
소스보기 접기
public class FragmentActivity extends Activity {
private Button btnListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
Log.d("FragmentActivity", "Init Fragment Activity!!");
btnListener = (Button) findViewById(R.id.btnListener);
btnListener.setOnClickListener(buttonListener );
}
View.OnClickListener buttonListener = new View.OnClickListener() {
@Override public void onClick (View v ) {
Toast .makeText(this, "Event Listener!!", Toast.LENGTH_LONG).show();
}
};
}
접기
이상으로 Android 에서 Event Listener 를 만드는 세 가지 방법에 대해 알아보았습니다. (다른 방법도 있습니다만 가장 많이들 사용하시는 세 가지에 대해서만 알아 봤습니다.)
IT is the foundation of all industries. Fighting!! All the developers in the world.