[안드로이드 프로그래밍] 방탈출 게임 3. 화면(액티비티) 이동.

     

특정 이벤트를 통해 액티비티가 이동되는 기능을 추가하자


가장 먼제 새로운 화면을 구성하기 위해 새로운 레이아웃을 추가한다.





만드는 과정에서 이름과 초기 레이아웃을 정하게 되는데 아무거나 하자.




새로운 뉴 레이아웃을 만들었다. 레이아웃의 경우 소문자로만 작성해야 한다.



레이아웃을 만든다고 액티비티가 만들어진건 아니다.

사실 액티비티는 Java파일을 말한다. Layout은 Java파일을 도와 화면 구성을 도와줄 뿐이지 액티비티는 아니다. Layout이 없어도 액티비티는 만들 수 있다. (자바의 스윙을 생각해보면 된다.) 하지만 코드만으로 화면을 구성하는것은 힘들기 때문에 GUI를 제공하기 위해 Layout이 생겨난 것이다. 따라서 Java파일을 새로 만들어야 새로운 액티비티가 만들어 진다. 





JAVA파일은 위와 같이 class로 만든다. 




클래스의 경우 맨 앞글자를 대문자로 만드는 경향이 있다. 개발자들 사이에 암묵적인 룰이다. class를 만들면 위와같이 public class NewActivity로 만들어진다. 사실 이건 JAVA코드이지 액티비티가 아니다. 액티비티로 만들려면 액티비티를 상속하면 된다.



위에 코드가 기본적인 액티비티.java의 코드이다. 아까 만든 layout과 java파일은 연결하기 위해 onCreate안에 setContentView(R.layout.new_layout)을 선언한다. 이것으로 이 NewActivity는 아까 만든 new_layout을 보여주는 액티비티가 되었다.


마지막으로 새로운 액티비티를 만들었다고 안드로이드에 알릴 필요가 있다.

매니페스트에 가서 새로운 액티비티를 추가했다고 선언한다.




name은 액티비티 이름을 경로를 포함하여 적는다. 하지만 앞에 .을 찍으면 경로를 생략할 수 있다. 만약 가로모드를 한다면 새로운 액티비티에도 screenOrientation을 적용해야 한다.


이제 새로운 액티비티 선언이 끝났다.

MainActivity 에서 NewActivity로 이동하는 기능을 넣어보자.




위에 이동 버튼을 클릭했을때 넘어가도록 설정하기 위해 클릭속성을 정한다.




이 버튼을 클릭하면 moveActivity가 실행된다. 자바에서 moveActivity를 누르면 된다.




액티비티 이동 코드는 간단하다.

인텐트를 선언하고 현재 있는 곳과 가고싶은 곳을 입력하면 된다. 현재 있는곳은 this(MainActivity)이고 가고싶은 곳은 NewActivity이다. 

startActivity(인텐트이름)으로 인텐트를 실행하면 액티비티가 이동된다.




반응형

댓글

Designed by JB FACTORY