월루를 꿈꾸는 대학생
[Kotlin] 뷰바인딩 , 인텐트 , 토스트 메세지 , SharedPreference 본문
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
- https://winterpoet-kim.tistory.com/13
728x90
'Programing > Kotlin' 카테고리의 다른 글
[Kotlin] 워커스래드 Timer , runOnUiThread , 스크롤뷰 (0) | 2023.01.26 |
---|---|
[Kotlin] 액티비티 및 기초 (0) | 2023.01.26 |