본문 바로가기
깡샘 코틀린

06-5 카카오톡 비밀번호 확인 화면 만들기(실습)

by 농농씨 2023. 8. 2.

지금까지 뷰를 이용해 화면을 구성하는 방법을 살펴보았따. 실습으로 간단한 화면을 만들어보고 장을 마치도록 한다. 화면만 구현하고 이벤트는 처리하지 않을 것이다.

 

그냥 최신개정판 샀어야 햇나 ㅎㅎ^^

2022년 4월 29일 개정됐다는데 1년사이에도 참 힘들구나

내가 만든 첫 실습 화면!!!!

(초록선은 왜생긴지 모르겠음)

내가 겪은 오류와 시행착오를 기록하겠다.

1️⃣ 책에서 레이아웃 파일 작성을 위해 activity_main.xml파일을 열라는데 존재하지 않으면?

액티비티를 새로 만들면 된다.

https://www.masterqna.com/android/103404/activity_main-xml-없음

 

activity_main.xml 파일을 열라는데 없으면? 만들어진 적이 없으면?

Android 2022.2 switched from the classical views concept to Jetpack Compose, which does not require a layout defined in XML anymore. Everything is done in the Kotlin code instead. See the official Jetpack Compose introduction for more info.
However, this only means that Jetpack Compose is used in some templates for new projects. You are still able to develop apps the classical way. Just choose the Empty Views Activitytemplate when you start a new project.

Android 2022.2는 기존 보기 개념에서 더 이상 XML로 정의된 레이아웃이 필요하지 않은 Jetpack Compose로 전환되었습니다. 대신 Kotlin 코드에서 모든 작업이 수행됩니다. 자세한 내용은 공식 Jetpack Compose 소개를 참조하세요.
그러나 이는 새 프로젝트의 일부 템플릿에서 Jetpack Compose가 사용된다는 의미일 뿐입니다. 여전히 고전적인 방식으로 앱을 개발할 수 있습니다. 새 프로젝트를 시작할 때 빈 보기 활동 템플릿을 선택하기만 하면 됩니다.

(아.. 이젠 필요없어졌대요 일단 공부하고잇으니까 해봐야겟죠 ㅎ하;)

 

그래서 레이아웃 파일이 없는데 어떡하냐?

그냥 모듈이름 우클릭해서 레이아웃파일을 새로 만들면 된다.

그럼 다음 사진처럼 layout 폴더가 만들어 진다. 나는 새로운 레이아웃 파일 이름을 'layout'으로 했다

이제 만든 레이아웃파일을 메인 액티비티에 연결해야 한다.

 

메인액티비티는 처음에 작업목록에 떠있을텐데 실수로 껐을 수도 있다. 그럼 파일을 어떻게 찾냐?

그러면 모듈 이름 우클릭 해서 'Find in files'를 누르고 'mainactivity'를 검색하면 'MainActivity.kt' 파일이 뜬다.

 

레이아웃 파일은 어떻게 연결하느냐?

메인액티비티 파일에 onCreate 함수가 이미 있을 것이다.

그 안에 setOnContentView(R.layout.xml파일이름)을 넣어주면 된다.

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            AndroidLabTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Greeting("Android")
                }
            }
        setContentView(R.layout.layout) // 이부분!
        }
    }
}

 

2.

//padding 속성은 내용(content)과 테두리(border) 사이의 간격인 패딩 영역의 크기를 설정

xml내에서는 <> 사이에 주석을 쓰면 오류가 나구, > 요기에 주석을 써주셔야 오류가 안납니다.<

 

3. 프로젝트 파일(제일 바깥에 있는 처음에 만들어진 모듈) 말고 그 안에 있는 내가 새로 만든(Ch6_View) 파일의 리소스 파일과 레이아웃 파일을 수정해야 한다.