Mobile/Android
[Mobile/Android] 이벤트 처리
팡트루야
2019. 10. 21. 09:25
당연히 안드로이드 앱은 사용자의 화면 터치에 대한 이벤트를 처리할 수 있어야 한다.
손가락으로 화면을 터치하면 터치 이벤트(Touch Event), 버튼이나 키패드를 누르면 키 이벤트(Key Event)
여러 이벤트들이 있는데 당연히 터치(Touch Event)가 가장 많이 사용되고 가장 중요하다.
이벤트 등록을 위해선 다음과 같은 이벤트 리스너 인터페이스의 구현이 필요하다.
View.OnTouchListener : boolean onTouch(View v, MotionEvent event)
View.OnKeyListener : boolean onKey(View v, int keyCode, KeyEvent event)
View.OnClickListener : void onClick(View v)
View.OnFocusChangeListener : void onFocusChange(View v, boolean hasFocus)
버튼 이벤트 등록 예
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.btn)
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something...
}
}
}
}
버튼 이벤트에 속하는 체크 박스 버튼 이벤트 등록 예
public class MainActivity extends AppCompatActivity {
CheckBox checkBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkBox = (CheckBox) findViewById(R.id.chk);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
if (checkBox.isChecked() == true) {
// do something...
} else {
// do something...
}
}
}
}
}
키 이벤트 등록 예
public class MainActivity extends AppCompatActivity {
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.edit1);
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) { 손가락이 떼졌을 때
Toast.makeText(getApplicationContext(), "손가락이 떼짐", Toast.LENGTH_SHORT).show();
} else if (event.getAction() == KeyEvent.ACTION_MOVE) { // 손가락이 눌린 상태로 움직일 때
Toast.makeText(getApplicationContext(), "손가락이 눌려있는 상태", Toast.LENGTH_SHORT).show();
} else if (event.getAction() == KeyEvent.ACTION_DOWN) { // 손가락이 눌렸을 때
Toast.makeText(getApplicationContext(), "손가락이 눌림", Toast.LENGTH_SHORT).show();
}
}
}
}
}