- 뷰 이벤트
이벤트에서 사용하는 용어를 살펴보면 화면상의 버튼이나 물리적인 스위치 등을 누르는 행위를 트리거(Trigger)라 한다. 그리고 트리거에 의해서 발생되는 전기적인 신호(사건 또는 현상)를 이벤트라고 한다. 이벤트가 발생하자마자 리스너가 감지하고 리스너는 다시 정해진 콜백 메서드를 호출하는 방식으로 동작하게 된다.
- View 클래스와 연관되어 있는 리스너와 콜백 메서드 그리고 트리거
리스너 |
콜백 메서드 |
트리거 |
OnClickListener |
onClick() |
화면 버튼을 짧게 클릭 |
OnCreateContextMenuListener |
onCreateContextMenu() |
켄텍스트메뉴를 길게 누름 |
OnDragListener |
onDrag() |
특정 뷰를 보기위해 뷰를 잡아끔 |
OnFocusChanged |
onFocusChanged() |
설정한 뷰로부터 포커스 이동 |
OnKeyListener |
onKey() |
포커스된 화면뷰에 대해 물리적인 키를 누름 |
OnLayoutChangeListener |
onLayoutChange() |
레이아웃의 변화로 뷰에 영향을 받음 |
OnLongClickListener |
onLongClick() |
화면 버튼을 길게 누름(2초) |
OnSystemUiVisibilityChangeListener |
onSystemUiVisibilityChange() |
상태바가 보여졌을때 |
OnTouchListener |
onTouch() |
화면을 터치에 대한 이벤트 |
안드로이드는 "뷰에서 일어날 수 있는 모든 가능성을 고려하여 이벤트의 리스너(인터페이스)와 콜백 메서드를 제공하고 있다.
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
EditText editText;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.entry);
textView = (TextView) findViewById(R.id.label);
Button ok = (Button)findViewById(R.id.ok);
Button cancel = (Button)findViewById(R.id.cancel);
//Register the onClickListener
ok.setOnClickListener(displayListener);
cancel.setOnClickListener(clearListener);
}
private final OnClickListener displayListener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
textView.setText(editText.getText());
}
};
private final OnClickListener clearListener = new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
textView.setText("");
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
[Android] SeekBar event (0) | 2013.03.24 |
---|---|
[android]라디오 그룹 이벤트 (0) | 2013.03.10 |
[android]뷰의 화면 출력 과정 (0) | 2013.03.09 |
[Android]자바 프로그램으로 화면 구성 (1) | 2013.02.26 |
[android]스타일과 테마 (0) | 2013.02.24 |
댓글 영역