public boolean dispatchTouchEvent(MotionEvent ev) {
ev.getAction();
ev.getX(); ev.getY(); //좌표
ev.getEventTime(); //이벤트가 발생한 시간(밀리세컨드)
ev.getDownTime(); //다운 이벤트가 발생한 시간, 다운이동업 이벤트를 하나의 단위로
return super.dispatchTouchEvent(ev);
}
public boolean onTouchEvent(MotionEvent ev) {
ev.getAction();
ev.getX(); ev.getY();
ev.getEventTime();
ev.getDownTime();
return super.onTouchEvent(ev);
}
class CustomViewGroup extends FrameLayout {
public CustomViewGroup(Context context) {
super(context);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
return super.dispatchTouchEvent(event);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return true;
}
}
class CustomViewGroup extends FrameLayout {
float initialY = 0;
...
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch(ev.getAction()) {
//터치 다운 위치의 Y값을 기억해 둔다.
case MotionEvent.ACTION_DOWN:
initialY = ev.getY();
break;
//터치 다운 Y 위치에서 20픽셀을 초과 이동되면 이벤트를 가로챈다.
case MotionEvent.ACTION_MOVE:
if (Math.abs(initialY - ev.getY()) >= 20)
return true;
}
return super.onInterceptTouchEvent(ev);
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savdInstanceState) {
super.onCreate(savedInstanceState);
//1. 레이아웃을 콘텐트 영역에 설정
setContentView(R.layout.activity_main);
//2. 레이아웃에 포함된 버튼 객체 참조
Button button = (Button) findViewById(R.id.btn1);
//3. 버튼에 터치 이벤트 리스너 객체를 생성 및 설정
button.setOnTouchListener(new MyTouchListener());
}
//버튼 뷰의 터치 이벤트 리스너 클래스 구현
private class MyTouchListener implements View.OnTouchListener {
//4. 각종 터치 이벤트는 onTouch 함수를 통해 전달됨
@Override
public boolean onTouch(View v, MotionEvent ev) {
//5. 이벤트를 소비하진 않도록
return false;
}
}
이벤트는 버리는게 맞다 안냥! 빠이! 개드로이드 빠이!
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("data1", "hello");
editor.putInt("data2", 100);
editor.commit(); //저장