반응형

자. 그럼 이제부터 프로젝트 하나는 만들도록 하겠습니다. 아래의 이름으로 프로젝틀 하나 생성하시기바랍니다. 여러 설정값들에 대한 의미는 이전 포스트에 언급했던 것을 참고를 선택하시고 'Next'버튼을 눌러 프로젝트를 생성해 보겠습니다. 


 Application Name : ViewByJava (java로 view를 만들었다는 의미로 이름을 지었습니다. 다른 이름으로 하셔도 괜찮습니다.)


 안드로이드 프로젝트 생성자를 통해서 기본적으로 Java파일과 xml파일이 생성되어 있습니다. 우선 xml은 이용하지 않을 것이니 java파일만을 살펴보겠습니다.

 

 MainActivity.java

 public class MainActivity extends Activity{


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

}       


}

 

 

 위에 보이는 setContenView()메소드가 화면에 보여질 내용물(Content)을 설정하는 것이라 설명했었습니다. 이 메소드의 매개변수를 보면 이전 강좌에서 언급했듯이 res폴더 안에 xml 파일로 만들어 놓은 'activity_main.xml'을 보여 주고 있습니다. 그렇다니까 그냥 그런가 보다 했지만 사실 생각해보면 조금 이상한 부분이 있습니다. 지금 작성하고 있는 파일은 Java언어로 개발한 것이고 보여지는 부분을 만들기 위해 사용한 파일은 xml언어로 개발된 것입니다. 이 둘은 전혀 다른 언어를 사용하고 있는 것입니다. java에서 xml파일의 내용을 읽어들이는 것은 사실 그렇게 간단하지만은 않습니다. xml파일을 읽어들여 파싱하고 객체로 생성시키는(inflating) 일련의 작업들이 필요합니다. 하지만 여러분은 그런 작업을 어디에서 작성하지 않고 있습니다. 사실 setContentView 메소드는 매개변수로 View 객체를 요구하고 있습니다. 하지만 이 곳에 xml파일의 resId(리소스ID)를 주면 내부적으로 xml을 inflate해서 View객체로 만들어 주고 있습니다. 결국 여러분들은 그냥 편하게 xml언어와 자바언어를 번갈아가며 작업하고 손쉽게 연동하여 사용하고 있지만 안드로이드는 xml을 모두 객체로 생성하여 자바언어로 실행되고 있다고 보시면 됩니다.


setContentView()메소드는 아래처럼 오버로딩되어 있는 메소드 입니다.

 setContentView(int resId)      :매개변수로 xml의 리소스ID를 요구    - xml 언어로 View를 만들었을 때 사용 (Default) 

 setContentView(View view)   :매개변수로 View 객체를 요구         - java 언어로 View객체를 만들었을때 사용


  

 




 ----- [ 이 포스트는 아직 미 완성입니다. 작성중......  다음에 이이서 작업합니다.  그림작업포함] --------- 

반응형

+ Recent posts