프로그래밍[Univ]/Android

[Android] 이벤트 리스너 달기 / Intent개념 / Activity 설명

Cloud Travel 2012. 1. 20. 11:49

* 이벤트 리스너 달기
 ⓐ main.xml 에 정의된 버튼 등에 id 값을 부여한다.(이로써 자바코드에서 하나의 객체로 선택이 가능해진다.)
  ex) android:id = "@+id/Btn1"
  ※ @+id의 의미
   - @ : 다른 리소스를 참조한다는 의미
   - +id : 다른 리소스에 id값을 추가한다는 의미


 ⓑ 자바코드에서 레이아웃 파일에 정의된 객체를 참조한다.
  > findViewById()메소드를 사용한다. 
  > findViewById()메소드에 의해 반환되는 객체의 타입은 View의 상위클래스인 View클래스의 객체로 반환되기
     때문에 사용하고자 하는 타입으로 형변환을 해줘야한다.
   ex) Button Btn1 = (Button)findViewById(R.id.Btn1);  
   ※ R.id.Btn1
    - 안드로이드 프로잭트를 생성하면 gen폴더 밑에 R.java라는 클래스가 하나 존재한다.
    - 프로젝트 마법사(SDK)에 의해서 사용자가 만든 객체 하나하나가 자동으로 변환되어 R.java에 정의 된다.
    - 사용자가 R.java 파일을 수정할 일은 거의 엎으며, R.java에 정의된 값으로 자바파일은 소통하기 때문에
       R.id.[idname]으로 정의를 해주는 것이다.
 
 ⓒ 이벤트 처리 코드 추가하기(Listener달기)
  - 이벤트는 각각의 Type(Button, RadioBox, ...)에 따라 다른 이벤트를 가지고 있다.
   ex) Button Type은 OnClickListener라는 인터페이스를 이용하여 쉽게 처리가 가능하다.

  
※ 예제 소스
 - "Toast" 라는 클래스는 잠깐 보였다가 사라지는 메세지를 생성가능하게 해주는 라이브러리 클래스의 객체이다.

* Intent
 - 위 예제소스에 빨간줄로 Intent가 표시 되있다.
 - 안드로이드 플래폼에서 이미 만들어져 제공되는 기능을 수행하거나, 사용자가 만든 Activity를 수행하기 위해
   존재하는 것이 Intent로 Intent에 의해서 안드로이드에게 실행을 의뢰하는 것이다.
  - 위 소스에서 Intent는 Android에게 "http://destiny738.tistory.com"페이지로 웹페이지를 열어 달라는 것이다. 

* Activity 
 - 애플리케이션을 구성할때 화면 하나하나를 Activity라고 한다. 
 ⓐ 새로운 액티비티, xml파일 생성 
  > 새로운 액티비티를 생성한다는 것은 java클래스를 하나 더 만드는 것을 의미한다.
  > 새로운 자바클래스의 액티비티를 출력해주고 구성해줄 xml파일이 또 필요할 것이다.  
    ( 기존 처음에 만들어진 액티비티(hello***activity.java는 main.xml에 연결되있다.)


 ⓑ Manifest에 Activity Tag를 추가해준다.  
  > Manifest파일은 에필리케이션에 대한 정보를 담고있는 파일로, 구성요소나 권한등의 정보를 정의한다.  
  > 새로은 Activity에 대한 내용을 추가해줘야 한다. 


 ⓒ Activity간의 연결점을 생성해준다. 
  

 위에서 설명했듯이 Intent를 이용하여 새로운 Activity를 시작해준다.(startActivity(INTENT))