728x90

4. 익명 내부 클래스를 이용하여 이벤트를 등록하는 방법

 

기존에 등록했던 이벤트 방법과 유사하나, 이벤트가 발생했을때 실행되는 대상이 어떤 모양이냐에 따라 달라진다.

 

방법 순서.

1. 원하는 이벤트의 리스너를 찾는다.

2. 해당 뷰에 이벤트를 적용함과 동시에 객체를 생성한다.

 

package com.jwandroid.tistory.event.test01;


import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Toast;


public class EventTest01Activity extends Activity{

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        

        View v = new View(this);

        v.setOnTouchListener(new View.OnTouchListener() {  // View.OnTouchListener의 객체가 아니라 View.OnTouchListener 인터

@Override                                                                               //  페이스를 상속받아 onTouch 메서드를 구현 하는 이름없는 서브

public boolean onTouch(View v, MotionEvent event) {           // 클래스 타입의 객체이다

Toast.makeText(EventTest01Activity.this, "onTouch", Toast.LENGTH_LONG).show();

return false;

}

});

      setContentView(v);       

    }

}

728x90

'Android' 카테고리의 다른 글

안드로이드 리소스, 에셋  (0) 2012.07.31
안드로이드 메뉴  (0) 2012.07.31
안드로이드 입력 (이벤트) 3  (0) 2012.07.31
안드로이드 입력 (이벤트) 2  (0) 2012.07.31
안드로이드 입력 (이벤트)  (0) 2012.07.31
Posted by 정망스
,
728x90

3. 리스너 인터페이스를 상속받아 이벤트를 구현하는 방법

새로운 클래스를 만들지 않고 Activity 클래스가 리스너를 상속받아 구현하는 방법이다.

 

방법 순서.

 

1. 원하는 이벤트의 리스너를 찾는다.

2. 해당 리스너를 Activity가 상속받아 구현하도록 한다.

3. 이벤트를 적용하고 하는 뷰에 이벤트를 적용한다.

 

package com.jwandroid.tistory.event.test01;


import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Toast;


public class EventTest01Activity extends Activity implements View.OnTouchListener{ //이벤트 리스너를 찾은후

    @Override                                                                                                     //Activity가 상속받는다.

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        

        View v = new View(this);         // 이벤트를 적용하고자 하는 뷰에 적용한다

        v.setOnTouchListener(this);

        setContentView(v);       

    }


@Override

public boolean onTouch(View v, MotionEvent event) {

Toast.makeText(this, "onTouch", Toast.LENGTH_LONG).show();

return false;

}

}

728x90

'Android' 카테고리의 다른 글

안드로이드 메뉴  (0) 2012.07.31
안드로이드 입력 (이벤트) 4  (0) 2012.07.31
안드로이드 입력 (이벤트) 2  (0) 2012.07.31
안드로이드 입력 (이벤트)  (0) 2012.07.31
안드로이드 Path  (0) 2012.07.31
Posted by 정망스
,
728x90

2. 새로운 리스너클래스를 생성하여 이벤트 구현

 

바로 원하는 이벤트를 만들어서 이벤트를 받고자 하는 뷰에 적용하는 방법이다.

 

방법 순서.

1. 원하는 이벤트 리스너를 찾는다.

2. 해당 리스너를 구현하는 리스너클래스를 만든다.

3. 이벤트를 적용하고자 하는 뷰에 이벤트를 적용한다.

 

package com.jwandroid.tistory.event.test01;


import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Toast;


public class EventTest02Activity extends Activity {

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        

        View v = new View(this);                                   //이벤트를 적용하고자 하는 뷰에 이벤트를 적용

        v.setOnTouchListener(new myTextEvent());

        setContentView(v);

       

    }

    

    class myTextEvent implements View.OnTouchListener//View.OnTouchListener 라는 원하는 이벤트 리스너를

@Override                                                                    // 찾은후 해당 리스너를 구현하는 클래스를 만듬

public boolean onTouch(View v, MotionEvent event) {

Toast.makeText(EventTest01Activity.this, "onTouch",     

Toast.LENGTH_LONG).show();

return false;

}

    

    }

}

728x90

'Android' 카테고리의 다른 글

안드로이드 입력 (이벤트) 4  (0) 2012.07.31
안드로이드 입력 (이벤트) 3  (0) 2012.07.31
안드로이드 입력 (이벤트)  (0) 2012.07.31
안드로이드 Path  (0) 2012.07.31
안드로이드 비트맵 (Bitmap)  (0) 2012.07.27
Posted by 정망스
,
728x90

안드로이드 이벤트란?

 

터치 스크린으로 되어 있는 스마트폰을 사용자가 화면을 터치 하거나 시스템의 상황 변화에 따라 발생하는 신호를 이벤트라고 한다.

 

안드로이드는 이벤트를 구현하기 위한 여러가지 방법이 있다.

 

1. Call-Back Method 를 재정의하여 이벤트를 구현하는 방법

2. 리스너 인터페이스를 구현하여 이벤트를 구현하는 방법

3. 리스너 인터페이스를 상속받아 이벤트를 구현하는 방법

4. 뷰를 통해 이벤트를 구현하는 방법

5. 익명 내부클래스를 이용하여 구현하는 방법

 

1. Call-Back Method 재정의하여 이벤트를 구현하는 방법

 

안드로이드에서 이벤트를 구현하기 위해 미리 정의된 메소드를 오버라이딩해서 구현하는 방법이다 가장 쉬운 방법이며 오버라이딩만 하면 정해진 이벤트가 발생시 알아서 호출되는 메소드 이다.

 

-onKeyDown(int, KeyEvent) : 키를 눌렀을때 호출되는 메소드

-onKeyUp(int, KeyEvent) : 키를 눌렀다가 뗄때 호출되는 메소드

-onTrackballEvent(MotionEvent) : 트랙볼이 사용될때 호출되는 메소드

-onTouchEvent(MotionEvent) : 화면을 터치했을때 호출되는 메소드

-onFocusChanged(boolean, int, Rect) : 포커스가 바뀌었을때 호출되는 메소드

 

위 5가지 메소드가 주로 쓰이며, 각 메소드안의 매개변수들은 이벤트 발생시 정보를 가지고 있는 클래스들이다.

 

예제)

package com.jwandroid.tistory.event.test01;


import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.MotionEvent;

import android.widget.Toast;


public class EventTest01Activity extends Activity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

    }


@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

Toast.makeText(this, "onKeyDown keyCode : "+keyCode, Toast.LENGTH_LONG).show();

return super.onKeyDown(keyCode, event);

}


@Override

public boolean onKeyUp(int keyCode, KeyEvent event) {

Toast.makeText(this, "onKeyDown keyCode : "+keyCode, Toast.LENGTH_LONG).show();

return super.onKeyUp(keyCode, event);

}


@Override

public boolean onTouchEvent(MotionEvent event) {

Toast.makeText(this, "onTouchEvent : ", Toast.LENGTH_LONG).show();

return super.onTouchEvent(event);

}    

}

 

728x90

'Android' 카테고리의 다른 글

안드로이드 입력 (이벤트) 3  (0) 2012.07.31
안드로이드 입력 (이벤트) 2  (0) 2012.07.31
안드로이드 Path  (0) 2012.07.31
안드로이드 비트맵 (Bitmap)  (0) 2012.07.27
안드로이드 페인트 (Paint)  (0) 2012.07.27
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침