상세 컨텐츠

본문 제목

수명주기, view -> activity, 익명함수

Android(강의정리)

by 낙지지 2020. 11. 16. 13:28

본문

https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko

01. Activity
- 앱의 한 화면이다.
- Life Cycle(수명주기)
- onCreate()
    -> activiry가 만들어질 때 단 한번만 호출된다.
    -> activiry를 만들 때, 단 한번만 하면 되는 작업들을 여기서 해준다.
- onStart()
- onResume()
    -> 다시 앱으로 돌아올 때, 무조건 호출 된다.
    -> activiry가 다시 호출 될 때, 하면 되는 작업들을 여기에서 해준다.
- onPause()
    -> 화면의 일부가 가려 졌을 때
- onStop()
    -> 화면 전부가 보이지 않을 때
- onDestroy()


- xml import시 plugins 체크

 

// 익명함수 / 클래스
// - 이름이 없는 함수 / 클래스
// - 이름을 만들어줄 필요가 없다.
// - 한번만 사용한다.

 

- 당장 람다가 어려우면 사용법만 익히기

package com.example.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_listener.*

class Listener : AppCompatActivity() {
    var number = 10

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_listener)

        // View를 activity로 가져오는 방법
        // 1> 직접 찾아서 가져온다
        //val textView : TextView = findViewById(R.id.hello)
        // 2> xml을 import해서 가져온다
        //hello.

        // 익명함수
        // 1 -> 람다방식(익명함수를 간단하게 사용하기 위한 방법)
        hello.setOnClickListener{
            Log.d("click", "Click!")
        }

        // 2 -> 익명함수 방식
        hello.setOnClickListener(object: View.OnClickListener{
            override fun onClick(v: View?) {
                Log.d("click", "Click!")
            }
        })

        // 3 -> 이름이 필요한 경우
        val click = object: View.OnClickListener{
            override fun onClick(v: View?) {
                Log.d("click", "Click!")
                hello.setText("안녕하세요")
                image.setImageResource(R.drawable.cat)
                number += 10
                Log.d("number", ""+number)
            }
        }
        hello.setOnClickListener(click)

        // View를 조작하는 함수들
        // 1> setText
        // 2> setImageResource

    }
}

view에서 avtivity로 가져올 때, xml을import하려면, build.gradle에 해당 plugin이 추가되어 있어야한다.



'Android(강의정리)' 카테고리의 다른 글

Context  (0) 2020.11.18
NullSafety, lateinit  (0) 2020.11.18
Fragment  (0) 2020.11.18
Intent  (0) 2020.11.17
layout  (0) 2020.11.13

관련글 더보기

댓글 영역