월루를 꿈꾸는 대학생

[Kotlin] 뷰바인딩 , 인텐트 , 토스트 메세지 , SharedPreference 본문

Programing/Kotlin

[Kotlin] 뷰바인딩 , 인텐트 , 토스트 메세지 , SharedPreference

하즈시 2023. 1. 26. 17:07
728x90

 

인텐트 담아서 다른 화면 전달 

뷰바인딩 

인텐트

토스트 

sharedpreference

 


뷰바인딩

- findViewById() 를 컴포넌트 마다 쓰기 귀찮으니까 나옴

- 편하게 바로바로 사용 가능

 

build.gradle -> module

android {
    buildFeatures{
        viewBinding true
    }

 

private val binding by lazy{
    // activityMainBinding 클래스는 activity_main_xml 파일 이름 참고하여 뷰바인딩 설정에 의해서 자동 생성됨
    // 해당 클래스르 통해서 xml에 있는 컴포넌트 접근 가능
    ActivityMainBinding.inflate(layoutInflater)
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    //setContentView(R.layout.activity_main)
    // 해당 코드로 xml을 바인딩 객체로 인식하고 그 화면을 인식
    setContentView(binding.root)

 

 

xml

- layout_width : 0 인 경우 match_constraint 로 가로로 꽉 채움 

- inputType : 입력된 값 조정 가능 

 

 

 

스패너 표시 있는 곳에 적은 text는 개발할때 디자인탭에서만 보이고 어플 상에서는 보이지 않음 

화면 위치 파악할 때 사용 

 

이미지 파일 

- 안드로이드에서 제공하는 이미지 파일들이 있음

- res > new > vector asset

 

 

인텐트

- 두 화면 간 값 전달하려면 인텐트를 사용 

binding.resultButton.setOnClickListener{
    // binding 으로 해당 컴포넌트 접근 가능
    // 1) 현재 액티비티 : this
    // 2) 화면 전환할 액티비티 : ResultActivity
    val intent = Intent(this,ResultActivity::class.java)

    // 액티비티 전환시 startActivity로 인텐트 전달하고 화면 전환
    startActivity(intent)
}

 

인텐트 데이터 넣기 

- 인텐트는 화면 전환 및 데이터 전달도 함 

val intent = Intent(this,ResultActivity::class.java).apply {
    // 해당 텍스트들이 숫자형이랑 toString으로 문자열 변경후 인텐트에 넣어줌
    putExtra("weight",binding.weightEditText.text.toString())
    putExtra("height",binding.heightEditText.text.toString())
}

 

 

인텐트에서 값 받기 

 

// 인텐트에서 받은 값 
val height = intent.getFloatExtra("height",0f)

 

 

toast메세지 

- 잠깐 화면에 나오는 메세지형태 문자창 

//토스트 메세지 
Toast.makeText(this,"$bmi",Toast.LENGTH_SHORT).show()

 

 


SharedPreference 

- 임시 데이터 저장소 

- 의존성 추가

dependencies {
    implementation 'androidx.preference:preference-ktx:1.2.0'
// preference 객체 얻기 
val pref = getSharedPreferences("pref",0)
// 에디터를 사용해서 데이터 수정 가능 
val editor = pref.edit()
// 에디터에 put형식으로 키 벨류 형식의 값을 저장 
// apply로 값 반영 
editor.putFloat("KEY_HEIGHT",height)
    .putFloat("KEY_WEIGHT",weight)
    .apply()

 

참고

- 안드로이드 생존 코딩 

- https://m.blog.naver.com/mdown/221925978525

 

[안드로이드 스튜디오] #4-1 인텐트(Intent) : 화면 전환과 데이터 전달

본 포스팅은 국비지원으로 모바일앱을 수강하며 배웠던 수업 내용을 기록한 포스팅입니다. 언어를 배우고 ...

blog.naver.com

- https://winterpoet-kim.tistory.com/13

 

[Android, Kotlin] SharedPreferences

1. SharedPreferences 가 뭐야? 간단하게, 앱에서 데이터를 저장하는 방법중에 하나로 앱 내부 DB 라 말할 수 있다. SharedPreferences는 간단한 값을 저장할 때 주로 사용하는데 이러한 값들이 매번 저장될

winterpoet-kim.tistory.com

 

728x90