먼저 새로운 Code를 추가하기전부터 보도록 하죠.
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
저희가 생성한 클래스는 기본적으로 Activity 클래스를 상속받습니다. Activity 클래스는 action 을 수행하는 하나의 독립된 어플리케이션이라고 할 수 있습니다.
저희가 나중에 만들게된 어플들은 다수의 Activity 로 만들어질수 있지만 사용자는 한번에 하나의 Activity 와 소통이 가능합니다.
다음으로 보실것은 onCreate 메소드 입니다. 이 메소드는 해당 액티비티가 실행이 될 경우 호출이 되는 메소드 입니다. 머 모든 초기화와 UI 의 생성이 여기에 위치해 있다고 보시면 됩니다.
그렇다고 해서 Activity 가 꼭 UI를 요구하지는 않지만, 머 주로 그렇다는 거죠.
package com.android.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
안드로이드의 UI 는 View 라고 불리는 객체들의 체계로 구성됩니다. View는 Layout 위에 각종 구성요소(이미지, 버튼, 텍스트)같은 것들을 그릴 수 있습니다. 이러한 각각의 객체들은 View의 하위 클래스 들이고, 위와 같이 텍스트를 마음대로 주무르는 하위 클래스가 TextView 입니다.
위와 같이 수정된 코드에서 저희는 생성자를 통해서 TextView 인 tv 를 생성하였습니다. TextView 생성자는 Context를 인자값으로 보내는데 위에서 보면 this 를 보내고 있습니다. 그 이유는 Activity 클래스는 Context 클래스로부터 상속을 받습니다. 그렇다면 여러분이 만든 클래스는 Activity 클래스의 하위 클래스이고 Acitivity 클래스는 Context 클래스의 하위 클래스이므로 여러분의 클래스 또한 Context 인것입니다.
다음으로 setText 메소드를 이용해서 tv 에 텍스트 값을 넣어줍니다.
마지막은 setContentView 메소드에 텍스트뷰인 tv 값을 인자값으로 던져주어 액티비티 위에 텍스트 값을 보여줍니다.
어느정도 이해가 되셨는지 잘 모르겠습니다.
저도 안드로이드 개발자 사이트에서 공부하고 있는 상태이므로 그렇게 확실하게는 전달하지 못하는 것
같기도 하군요 ㅠ.ㅠ
그래도 열심히 하고 있단 것만 알아주시길 ㅎㅎ
다음에도 안드로이드 관련된 글로 찾아뵙도록 하죠.
trackback from: Android 2.0을 탑재한 Motoroi! 모토로이 가격표!!!
답글삭제Android 2.0을 탑재한 모토로라의 최신 핸드폰인 Motoroi의 요금제 가격이 공개되었습니다. 저두 미리 Android 어플 개발을 위해 예약신청을 했답니다~^^;; 근데 실상 구매는 못할거 같네요.... 대충 보면 65만원정도 나온다네요....ㅎㅎ;; 아무래도.... 엄마를 꼬드기려면... 엄청난 시간이 걸릴거 같혀서... 그냥 포기랍니다~ ㅜㅜ 진짜 저건 가지고 싶은데.... 이따가 전화오면 이것저것 물어보고 보류 할랩니다....ㅜㅜ