From 32f7852c5cf7cb81fa22d62eef1b0d5ba1819457 Mon Sep 17 00:00:00 2001 From: jinsu4755 Date: Thu, 31 Dec 2020 14:14:28 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[Fix]=20=EC=9C=BC=EC=95=84=EC=95=84?= =?UTF-8?q?=EC=95=84=EC=95=84=20=EB=8B=A4=EC=8B=9C=20=EB=A7=8C=EB=93=A6?= =?UTF-8?q?=E3=85=8B=E3=85=8B=E3=85=8B=E3=85=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../semina/practicegitanddatabinding/BindingAdapter.kt | 10 +++------- .../semina/practicegitanddatabinding/MainActivity.kt | 2 +- app/src/main/res/layout/activity_main.xml | 7 ++----- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt b/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt index 2985065..9a688d7 100644 --- a/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt +++ b/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt @@ -4,13 +4,9 @@ import android.widget.ImageView import androidx.databinding.BindingAdapter import com.bumptech.glide.Glide +/*TODO step2 바인딩 어뎁터 생성 +* Glide로 이미지를 띄워주는 바인딩 어뎁터를 만들어주세요 +* 뷰에서 사용할 어트리뷰트 이름은 image로 합니다.*/ object BindingAdapter { - @BindingAdapter("app:image") - @JvmStatic - fun imageBinding(view: ImageView, url: String) { - Glide.with(view.context) - .load(url) - .into(view) - } } \ No newline at end of file diff --git a/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt b/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt index ceadf0b..e3366b3 100644 --- a/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt +++ b/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt @@ -12,7 +12,7 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main) - binding.userProfile = UserData(IMAGE_URL, DEFAULT_USER_NAME) + /*TODO step3 유저 데이터를 binding 변수에 넣어서 뷰에서 사용할 수 있도록 합니다.*/ addButtonClickEvent(binding) } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 0dbd332..a8a9478 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,11 +4,10 @@ xmlns:tools="http://schemas.android.com/tools"> - + + Date: Fri, 1 Jan 2021 03:26:08 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[Feat]=20Step02=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EB=B0=94=EC=9D=B8=EB=94=A9=20=EC=98=88=EC=A0=9C=20?= =?UTF-8?q?=EC=8B=A4=EC=8A=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DataBindingAdpater 생성. UserData를 이용해 데이터 바인딩. Related to #3 --- .../semina/practicegitanddatabinding/BindingAdapter.kt | 9 +++++++++ .../semina/practicegitanddatabinding/MainActivity.kt | 7 ++++++- app/src/main/res/layout/activity_main.xml | 8 +++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt b/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt index 9a688d7..cb5fb47 100644 --- a/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt +++ b/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt @@ -9,4 +9,13 @@ import com.bumptech.glide.Glide * 뷰에서 사용할 어트리뷰트 이름은 image로 합니다.*/ object BindingAdapter { + + @JvmStatic + @BindingAdapter("showImage") + fun showImage(view: ImageView, imageUrl: String){ + Glide.with(view.context) + .load(imageUrl) + .into(view) + } + } \ No newline at end of file diff --git a/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt b/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt index e3366b3..3b7bd13 100644 --- a/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt +++ b/app/src/main/java/sotp/semina/practicegitanddatabinding/MainActivity.kt @@ -3,21 +3,26 @@ package sotp.semina.practicegitanddatabinding import android.os.Bundle import android.widget.EditText import androidx.appcompat.app.AppCompatActivity +import androidx.databinding.BindingAdapter import androidx.databinding.DataBindingUtil import sotp.semina.practicegitanddatabinding.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { + private lateinit var bindingAdapter: BindingAdapter + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main) - /*TODO step3 유저 데이터를 binding 변수에 넣어서 뷰에서 사용할 수 있도록 합니다.*/ + + binding.userProfile = UserData(IMAGE_URL, DEFAULT_USER_NAME) addButtonClickEvent(binding) } private fun setProfileName(binding: ActivityMainBinding, content: String) { binding.userProfile = UserData(IMAGE_URL,content) + } private fun addButtonClickEvent(binding: ActivityMainBinding) { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a8a9478..2b15448 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,10 +4,11 @@ xmlns:tools="http://schemas.android.com/tools"> - + - + tools:text="@{userProfile.userName}" /> Date: Fri, 1 Jan 2021 03:36:59 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[Fix]=20Step.02=20layout=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit text에 @{userProfile.username} 넣어줌. tools:text에 넣는 실수를 함 Related to #3 --- .../sotp/semina/practicegitanddatabinding/BindingAdapter.kt | 3 --- app/src/main/res/layout/activity_main.xml | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt b/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt index cb5fb47..19d1b01 100644 --- a/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt +++ b/app/src/main/java/sotp/semina/practicegitanddatabinding/BindingAdapter.kt @@ -4,9 +4,6 @@ import android.widget.ImageView import androidx.databinding.BindingAdapter import com.bumptech.glide.Glide -/*TODO step2 바인딩 어뎁터 생성 -* Glide로 이미지를 띄워주는 바인딩 어뎁터를 만들어주세요 -* 뷰에서 사용할 어트리뷰트 이름은 image로 합니다.*/ object BindingAdapter { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2b15448..ba939dc 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -32,10 +32,11 @@ android:layout_marginTop="16dp" android:textColor="@color/black" android:textSize="20sp" + android:text="@{userProfile.userName}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/image_profile_image" - tools:text="@{userProfile.userName}" /> + tools:text="profile name" />