Skip to content

Commit

Permalink
[Fix] 강의 자료 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
jinsu4755 committed Dec 31, 2020
1 parent 71864c7 commit e6483b8
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,42 @@ 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() {


private lateinit var binding: ActivityMainBinding
val editText = ObservableField<String>()
/* TODO step4 설계 변경이 일어납니다 binding 을 전역 클래스 맴버 변수로 올리고
* 양방향 데이터 바인딩을 위한 ObservableField 를 작성합니다
* 이 과정에서 하단 getEditTextToString이 사라질 수 있습니다.*/

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.mainActivity = this
val binding: ActivityMainBinding =
DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.userProfile = UserData(IMAGE_URL, DEFAULT_USER_NAME)
/*TODO step2 엑티비티를 결합하였으므로 binding에 엑티비티를 결합한다.*/
addButtonClickEvent(binding)
}

private fun setProfileName(content: String) {
binding.userProfile = UserData(IMAGE_URL, content)
private fun setProfileName(binding: ActivityMainBinding, content: String) {
binding.userProfile = UserData(IMAGE_URL,content)
}

fun changeUserNameEvent() {
setProfileName(editText.get() ?: DEFAULT_USER_NAME)
/*TODO step3 해당 함수를 버튼이 클릭 되었을때 어떤 일이 일어날지 수정합시다.
* 필요시 다른 함수를 수정해야함.*/
private fun addButtonClickEvent(binding: ActivityMainBinding) {
binding.buttonProfileChangeButton.setOnClickListener {
setProfileName(
binding,
getEditTextToString(binding.inputChangedProfile)
)
}
}


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"
Expand Down
13 changes: 5 additions & 8 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,11 @@
xmlns:tools="http://schemas.android.com/tools">

<data>

<variable
name="userProfile"
type="sotp.semina.practicegitanddatabinding.UserData" />

<variable
name="mainActivity"
type="sotp.semina.practicegitanddatabinding.MainActivity" />
<!--TODO step1 변수로 Activity를 결합합니다.-->
</data>

<androidx.constraintlayout.widget.ConstraintLayout
Expand All @@ -35,37 +32,37 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@{userProfile.userName}"
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="profile name" />

<!--TODO step5 양방향 데이터 결합-->
<EditText
android:id="@+id/input_changed_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@={mainActivity.editText}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/text_profile_name" />

<!--TODO step6 결합한 Activity의 함수를 onClick에 결합합니다.-->
<Button
android:id="@+id/button_profile_change_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:onClick="@{()->mainActivity.changeUserNameEvent()}"
android:text="Change"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:text="Change"
app:layout_constraintTop_toBottomOf="@+id/input_changed_profile" />

</androidx.constraintlayout.widget.ConstraintLayout>
Expand Down

0 comments on commit e6483b8

Please sign in to comment.