From 00e3d842b3d8b6ac79a2999f609caf67397d4b9e Mon Sep 17 00:00:00 2001 From: hyooosong Date: Fri, 1 Jan 2021 11:16:21 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EB=B0=94?= =?UTF-8?q?=EC=9D=B8=EB=94=A9=20Step.03=20=EC=8B=A4=EC=8A=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Step.03 dataBinding_onClick event Related to : #2, #6, #9 --- .../practicegitanddatabinding/MainActivity.kt | 28 +++++-------------- app/src/main/res/layout/activity_main.xml | 12 ++++---- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt b/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt index 85d8dde..b0184d6 100644 --- a/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt +++ b/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt @@ -1,45 +1,31 @@ package sotp.semina.practicegitanddatabinding import android.os.Bundle -import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil +import androidx.databinding.ObservableField import sotp.semina.practicegitanddatabinding.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { - /* TODO step4 설계 변경이 일어납니다 binding 을 전역 클래스 맴버 변수로 올리고 - * 양방향 데이터 바인딩을 위한 ObservableField 를 작성합니다 - * 이 과정에서 하단 getEditTextToString이 사라질 수 있습니다.*/ + private lateinit var binding: ActivityMainBinding + val editText = ObservableField() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val binding: ActivityMainBinding = - DataBindingUtil.setContentView(this, R.layout.activity_main) + binding = DataBindingUtil.setContentView(this, R.layout.activity_main) binding.userProfile = UserData(IMAGE_URL, DEFAULT_USER_NAME) - /*TODO step2 엑티비티를 결합하였으므로 binding에 엑티비티를 결합한다.*/ - addButtonClickEvent(binding) + binding.mainActivity=this } private fun setProfileName(binding: ActivityMainBinding, content: String) { binding.userProfile = UserData(IMAGE_URL,content) } - /*TODO step3 해당 함수를 버튼이 클릭 되었을때 어떤 일이 일어날지 수정합시다. - * 필요시 다른 함수를 수정해야함.*/ - private fun addButtonClickEvent(binding: ActivityMainBinding) { - binding.buttonProfileChangeButton.setOnClickListener { - setProfileName( - binding, - getEditTextToString(binding.inputChangedProfile) - ) - } + fun ChangeUserNameClickEvent() { + setProfileName(binding, editText.get()?: DEFAULT_USER_NAME) } - - private fun getEditTextToString(content: EditText): String = content.text.toString() - - companion object { private const val IMAGE_URL = "https://avatars3.githubusercontent.com/u/45380072?s=460&u=b9fc82996ec2cc568a7dfcbf8846944dc16a7ccd&v=4" diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6eebcf3..bed4e68 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,7 +8,9 @@ name="userProfile" type="sotp.semina.practicegitanddatabinding.UserData" /> - + - + app:layout_constraintTop_toBottomOf="@+id/text_profile_name" + android:text="@={mainActivity.editText}"/> -