20230824_TIL

이상훈·2023년 8월 23일

TIL

목록 보기
26/83

8월 21일 발표 최종본 코드

Utils.kt

package bootcamp.sparta.notlame.Util

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import bootcamp.sparta.notlame.R

// fadein and out 애니메이션
fun animSlideRight(context: Context) = (context as AppCompatActivity).overridePendingTransition(R.anim.slide_from_right, R.anim.static_animation)
fun animSlideLeft(context: Context) = (context as AppCompatActivity).overridePendingTransition(R.anim.slide_from_left, R.anim.static_animation)

DetailPage.kt

package bootcamp.sparta.notlame.detailPage

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.ImageButton
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import bootcamp.sparta.notlame.R
import com.google.android.material.snackbar.Snackbar

class DetailPage : AppCompatActivity() {
private val detailInputBtn: Button by lazy { findViewById(R.id.detailInputBtn) }
private val detailInputArea: LinearLayout by lazy { findViewById(R.id.detailInputArea) }
private val detailInputEdit: EditText by lazy { findViewById(R.id.detailInputEdit) }
private val detailSubject:TextView by lazy {findViewById(R.id.detailSubject) }
private val detailContent: TextView by lazy { findViewById(R.id.detailContent) }
private val detailName:TextView by lazy { findViewById(R.id.detailName) }
private val detailImage: ImageView by lazy { findViewById(R.id.detailImage) }
private val userImageComment: ImageView by lazy { findViewById(R.id.userImageComment) }
private val backBtn:ImageButton by lazy { findViewById(R.id.imageButton) }

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_detail_page)

    val userName = intent.getStringExtra("userName")?:"이름 없음"
    val userImage = intent.getIntExtra("userImage", R.drawable.mypage_dummy_image)
    detailSubject.setText(intent.getStringExtra("detailSubject"))
    detailContent.setText(intent.getStringExtra("detailContent"))
    detailName.setText(userName)

    detailImage.setImageResource(userImage)
    userImageComment.setImageResource(userImage)
    detailImage.clipToOutline = true
    userImageComment.clipToOutline = true

    //뒤로 가기 버튼
    backBtn.setOnClickListener {
        var snackBar = Snackbar.make(it, R.string.warningBack, Snackbar.LENGTH_SHORT).setAction(R.string.button_done, View.OnClickListener {
            finish()
            overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out)
        })
        snackBar.show()
    }

    //댓글 입력 버튼
    detailInputBtn.setOnClickListener {
        val text = detailInputEdit.text.toString()
        if(text.isBlank()){
            Toast.makeText(this, R.string.warningNull, Toast.LENGTH_SHORT).show()
        }else{
            inputText(text, userName)
            detailInputEdit.setText(/* text = */ null)
        }
    }
}

// 댓글 생성
fun inputText(text:String, userName:String){
    val newText = TextView(this)
    newText.setText(/* text = */ "$userName : $text")
    detailInputArea.addView(newText)
}

}

MainPageActivity.kt

package bootcamp.sparta.notlame.mainPage

import android.app.Activity
import android.content.Intent
import android.media.Image
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.EditText
import android.widget.ImageButton
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.constraintlayout.widget.ConstraintLayout
import bootcamp.sparta.notlame.R
import bootcamp.sparta.notlame.Util.animSlideRight
import bootcamp.sparta.notlame.detailPage.DetailPage
import bootcamp.sparta.notlame.myPage.MyPageActivity
import bootcamp.sparta.notlame.writePage.WritePageActivity
import java.text.SimpleDateFormat
import java.time.LocalDate
import java.util.Calendar
import java.util.Locale

class MainPageActivity : AppCompatActivity() {

// private lateinit var getContent: ActivityResultLauncher

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main_page)

    userInfoSetting()
    teamBoardSetting()
    myPageSet()
}

private fun userInfoSetting() {
    // 임시로 수정 불가로 설정

    val checkName = intent.getStringExtra("userName") ?: "name"
    val checkId = intent.getStringExtra("userId") ?: "id"
    val checkPw = intent.getStringExtra("userPw") ?: "pw"
    val checkTel = intent.getStringExtra("userTel") ?: "tel"
    val checkPosition = intent.getStringExtra("userPosition") ?: "position"
    val checkImage = intent.getIntExtra("userImage", 0)

    //


    var userImage = findViewById<ImageView>(R.id.userImage)
    userImage.setImageResource(checkImage)
    userImage.setOnClickListener {
        val intent = Intent(this, MyPageActivity::class.java)

        intent.putExtra("userName", checkName)
        intent.putExtra("userId", checkId)
        intent.putExtra("userPw", checkPw)
        intent.putExtra("userTel", checkTel)
        intent.putExtra("userPosition", checkPosition)
        intent.putExtra("userImage", checkImage)

        startActivity(intent)
        animSlideRight(this)
    }

    //

    var userImageList1 = findViewById<ImageView>(R.id.userImageList1)
    userImageList1.setImageResource(checkImage)
    userImageList1.setOnClickListener {
        val intent = Intent(this, MyPageActivity::class.java)

        intent.putExtra("userName", checkName)
        intent.putExtra("userId", checkId)
        intent.putExtra("userPw", checkPw)
        intent.putExtra("userTel", checkTel)
        intent.putExtra("userPosition", checkPosition)
        intent.putExtra("userImage", checkImage)

        startActivity(intent)
        animSlideRight(this)
    }

    //

    var userNameText = findViewById<TextView>(R.id.userNameText)
    userNameText.text = checkName

    var userPositionText = findViewById<TextView>(R.id.userPositionText)
    userPositionText.text = checkPosition

    //

    var userImageList2 = findViewById<ImageView>(R.id.userImageList2)
    userImageList2.setImageResource(R.drawable.profile_set1)

    var userImageList3 = findViewById<ImageView>(R.id.userImageList3)
    userImageList3.setImageResource(R.drawable.profile_set2)


    var userImageList4 = findViewById<ImageView>(R.id.userImageList4)
    userImageList4.setImageResource(R.drawable.profile_set3)


    var userImageList5 = findViewById<ImageView>(R.id.userImageList5)
    userImageList5.setImageResource(R.drawable.profile_set4)


}

// 팀 게시판 세팅
private fun teamBoardSetting() {

    //게시판 값 받아오기
    //빈 리스트 생성
    val title: MutableList<String> = mutableListOf()  //: String? = null
    var comment: MutableList<String> = mutableListOf() //: String? = null

    var checkValue: Int? = null


    var index = 0

    val startForResult =
        registerForActivityResult(ActivityResultContracts.StartActivityForResult())
        { result ->
            if (result.resultCode == Activity.RESULT_OK) {


                //결과에 대해 받아오게 되면 실행되는 거기 때문에 teamboard를 여기에 생성해야 한다
                //값을 받아 온다      ->registerForActivityResult는 여기서만 받아오기 때문에
                //받아 온 값은 여기서만 초기화 해야한다

                val checkImage = intent.getIntExtra("userImage", 0)
                val checkName = intent.getStringExtra("userName") ?: "name"

                val data: Intent? = result.data

                title.add(data?.getStringExtra("Title").toString())
                comment.add(data?.getStringExtra("Comment").toString())

                checkValue = data?.getIntExtra("check", 0)


                if (checkValue == 1) {
                    val parentLayout = findViewById<LinearLayout>(R.id.teamBoardLayout)


                    val inflater = LayoutInflater.from(this)

                    // 동적 생성할 layout을 선언
                    val teamLayout = inflater.inflate(R.layout.team_board_frame, null)
                    parentLayout.addView(teamLayout)
                    val titleEditText = teamLayout.findViewById<TextView>(R.id.teamBoardTitle1)
                    titleEditText.text = title[index]


                    // 동적 생성할 layout을 선언
                    val commentLayout =
                        inflater.inflate(R.layout.team_board_comment_frame, null)
                    //동적으로 id 생성하기      -> 1부터 값이 생성됨
                    //commentLayout.id = View.generateViewId()

                    parentLayout.addView(commentLayout)
                    val commentEditText =
                        commentLayout.findViewById<TextView>(R.id.teamBoardComment1)
                    commentEditText.text = comment[index]


                    //teamLayout
                    val teamBoardFrame1 =
                        teamLayout.findViewById<ConstraintLayout>(R.id.teamBoardFrame1)
                    val teamBoardDetailFrame1 =
                        commentLayout.findViewById<ConstraintLayout>(R.id.teamBoardDetailFrame1)
                    teamBoardFrame1.setOnClickListener {

                        if (teamBoardDetailFrame1.visibility == View.VISIBLE) {
                            teamBoardDetailFrame1.visibility = View.GONE
                        } else {
                            teamBoardDetailFrame1.visibility = View.VISIBLE

                        }
                    }


                    val userDateText =
                        teamLayout.findViewById<TextView>(R.id.teamBoardUserDate1)
                    userDateText.text = getCurrentDate()
                    val userNameText =
                        teamLayout.findViewById<TextView>(R.id.teamBoardUserName1)
                    userNameText.text = checkName

                    //DetailPage
                    //동적 생성에 대한 아이디를 받아야 한다.        --> 결국 list해서 값을 저장해야 한다.
                    //더 보기 기능
                    //index 판단을 해야함

                    val teamBoardDetailViewMore =
                        commentLayout.findViewById<TextView>(R.id.teamBoardDetailViewMore1)
                    teamBoardDetailViewMore.id = index


                    teamBoardDetailViewMore.setOnClickListener {

                        val intent = Intent(this, DetailPage::class.java)

                        intent.putExtra("userName", checkName)

                        intent.putExtra("userImage", checkImage)

                        intent.putExtra("detailSubject", title[teamBoardDetailViewMore.id])
                        intent.putExtra("detailContent", comment[teamBoardDetailViewMore.id])

                        startActivity(intent)
                        animSlideRight(this)

                    }

                }
                ///
                index++
            }
        }


    // 게시판 등록하기
    val boardAddBtn = findViewById<ImageButton>(R.id.boardAddBtn)
    boardAddBtn.setOnClickListener {
        val intent = Intent(this, WritePageActivity::class.java)

        startForResult.launch(intent)
        animSlideRight(this)
    }

}

//날짜 갖고오기
private fun getCurrentDate(): String {
    val currentDate = Calendar.getInstance().time
    val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
    return dateFormat.format(currentDate)
}

private fun myPageSet() {

    val checkName = intent.getStringExtra("userName") ?: "name"
    val checkId = intent.getStringExtra("userId") ?: "id"
    val checkPw = intent.getStringExtra("userPw") ?: "pw"
    val checkTel = intent.getStringExtra("userTel") ?: "tel"
    val checkPosition = intent.getStringExtra("userPosition") ?: "position"
    val checkImage = intent.getIntExtra("userImage", 0)


    val personInfoBtn = findViewById<ImageButton>(R.id.personInfoBtn)
    personInfoBtn.setOnClickListener {
        val intent = Intent(this, MyPageActivity::class.java)

        intent.putExtra("userName", checkName)
        intent.putExtra("userId", checkId)
        intent.putExtra("userPw", checkPw)
        intent.putExtra("userTel", checkTel)
        intent.putExtra("userPosition", checkPosition)
        intent.putExtra("userImage", checkImage)

        startActivity(intent)
        animSlideRight(this)
    }

}

}

MyPageActivity.kt

package bootcamp.sparta.notlame.myPage

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.CheckBox
import android.widget.EditText
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import android.widget.Toast
import bootcamp.sparta.notlame.mainPage.MainPageActivity
import bootcamp.sparta.notlame.R
import bootcamp.sparta.notlame.Util.animSlideLeft

class MyPageActivity : AppCompatActivity() {
// 핢일 추가하기 EditText
private val todoEditText: EditText by lazy { findViewById(R.id.mypage_et_todo) }
// 할일목록 입력 버튼
private val todoBtn: Button by lazy { findViewById(R.id.mypage_btn_todo) }
// 확인버튼
private val doneBtn: Button by lazy { findViewById(R.id.mypage_btn_done) }
// 할일목록 LinearLayout
private val layout: LinearLayout by lazy { findViewById(R.id.mypage_linearlayout_todo) }

// 이미지
private val iv_Image : ImageView by lazy { findViewById(R.id.mypage_iv_image) }
// 이름
private val tv_name : TextView by lazy { findViewById(R.id.mypage_tv_name) }
// 직책
private val tv_position : TextView by lazy { findViewById(R.id.mypage_tv_position_value) }
// 전화번호
private val tv_tel : TextView by lazy { findViewById(R.id.mypage_tv_phone_value) }


// 내 정보(이미지)
private val intent_Image: Int by lazy { intent.getIntExtra(getString(R.string.intent_userImage), -1) }

// 내 정보(이름)
private val intent_Name: String? by lazy { intent.getStringExtra(getString(R.string.intent_userNameText)) }

// 내 정보(직책)
private val intent_Position: String? by lazy { intent.getStringExtra(getString(R.string.intent_userPositionText)) }

// 내 정보(번호)
private val intent_Tel: String? by lazy{ intent.getStringExtra(getString(R.string.intent_userTelText))}


// 할일목록 CheckBox관리를위한 List
private var todoCheckBoxList: MutableList<CheckBox> = mutableListOf()

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.my_page_activity)

    setLayoutData()
    registerButtonClickListeners()

}

// 인텐트에서 받아온 Data들을 Layout에 배치
private fun setLayoutData() {
    iv_Image.setImageResource(intent_Image)
    tv_name.text = intent_Name
    tv_position.text = intent_Position
    tv_tel.text = intent_Tel
}

// button에 onClickLstener 등록
private fun registerButtonClickListeners() {
    todoBtnOnClickListener()
    doneBtnOnClickListener()
}

// 확인버튼
private fun doneBtnOnClickListener() {
    doneBtn.setOnClickListener {
        animSlideLeft(this)
        finish()
    }
}

// 할일 목록 추가버튼
private fun todoBtnOnClickListener() {
    todoBtn.setOnClickListener {
        // EditText 입력값이 있는지 체크
        if (todoEditText.text.length <= 0) {
            toastMsg(getString(R.string.mypage_edittext_null))
        } else {
            createAndAllocCheckBox()
            todoEditText.text = null
        }
    }
}

// 체크박스 생성 및 배치
private fun createAndAllocCheckBox() {
    val checkBox = createCheckBox(todoEditText.text.toString())
    allocCheckBox(checkBox)
    todoCheckBoxList.add(checkBox)
    Log.d("MyPageActivity", checkBox.id.toString())
}

// 체크박스 컴포넌트 생성
private fun createCheckBox(text: String): CheckBox {
    val checkBox = CheckBox(this)
    checkBox.text = text
    checkBox.id = todoCheckBoxList.size
    setCheckBoxOnClickListener(checkBox)
    return checkBox
}

// checkBox의 OnClick이벤트 발생시 Layout에서 해지
private fun setCheckBoxOnClickListener(checkBox: CheckBox) {
    checkBox.setOnClickListener {

// val selectedCheckBoxComponents = todoCheckBoxList.find { it.id == checkBox.id }
// todoCheckBoxList.remove(selectedCheckBoxComponents)
freeCheckBox(checkBox)
}
}

// 체크박스 컴포넌트 Layout에 할당
private fun allocCheckBox(checkBox: CheckBox) {
    layout.addView(
        checkBox,
        LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.WRAP_CONTENT
        )
    )
}

// 체크박스 컴포넌트 Layout에 해지
private fun freeCheckBox(checkBox: CheckBox) = layout.removeView(checkBox)

// 토스트 메세지
private fun toastMsg(msg: String) = Toast.makeText(this, msg, Toast.LENGTH_SHORT).show()

}

SignInPageActivity.kt

package bootcamp.sparta.notlame.signIn

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import bootcamp.sparta.notlame.R
import bootcamp.sparta.notlame.Util.animSlideRight
import bootcamp.sparta.notlame.mainPage.MainPageActivity
import bootcamp.sparta.notlame.signUp.SignUpPageActivity

class SignInPageActivity : AppCompatActivity() {

private lateinit var editTextId: EditText
private lateinit var editTextPassword: EditText
private lateinit var buttonLogin: Button
private lateinit var buttonSignUp: Button

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_sign_in_page)

    editTextId = findViewById(R.id.editTextId)
    editTextPassword = findViewById(R.id.editTextPassword)
    buttonLogin = findViewById(R.id.buttonLogin)
    buttonSignUp = findViewById(R.id.buttonSignUp)

    buttonLogin.setOnClickListener {

        val id = editTextId.text.toString()
        val password = editTextPassword.text.toString()


        val checkName = intent.getStringExtra("userName") ?: "name"
        val checkId = intent.getStringExtra("userId") ?: "id"
        val checkPw = intent.getStringExtra("userPw") ?: "pw"
        val checkTel = intent.getStringExtra("userTel") ?: "tel"
        val checkPosition = intent.getStringExtra("userPosition") ?: "position"
        val checkImage = intent.getIntExtra("userImage", 0)


        if (id.isEmpty() || password.isEmpty()) {


            Toast.makeText(this, "아이디/비밀번호 둘 중 하나가 입력이 비어있습니다.", Toast.LENGTH_SHORT).show()
        } else if((id.equals(checkId)) && (password.equals(checkPw))){

            Toast.makeText(this, R.string.successLogin, Toast.LENGTH_SHORT).show()


            val intent = Intent(this, MainPageActivity::class.java)

            intent.putExtra("userName", checkName)
            intent.putExtra("userId", checkId)
            intent.putExtra("userPw", checkPw)
            intent.putExtra("userTel", checkTel)
            intent.putExtra("userPosition", checkPosition)
            intent.putExtra("userImage", checkImage)
            startActivity(intent)
            animSlideRight(this)
            finish()
        }
        else{
            Toast.makeText(this, R.string.checkIDPassword, Toast.LENGTH_SHORT).show()
        }
    }

    buttonSignUp.setOnClickListener {
        startActivity(Intent(this, SignUpPageActivity::class.java))
        animSlideRight(this)
    }
}

}

SignUpActivity.kt

package bootcamp.sparta.notlame.signUp

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.widget.Button
import android.widget.EditText
import android.widget.ImageView
import android.widget.Toast
import androidx.core.content.res.ResourcesCompat
import bootcamp.sparta.notlame.R
import bootcamp.sparta.notlame.Util.animSlideLeft
import bootcamp.sparta.notlame.Util.animSlideRight
import bootcamp.sparta.notlame.signIn.SignInPageActivity
import java.util.regex.Pattern

class SignUpPageActivity : AppCompatActivity() {

private val idPattern = Pattern.compile("^[a-zA-Z0-9]{5,10}\$")
private val pwPattern = Pattern.compile("^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[!@#$%^&+=]).{8,15}\$")
private val phonePattern = Pattern.compile("^[0-9]{10,11}\$")
private val namePattern = Pattern.compile("^[가-힣a-zA-Z]*\$")

private var imgSet: Int = R.drawable.logo1 // 기본 값으로 초기화

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.sign_up_layout)

    val et_name = findViewById<EditText>(R.id.et_name)
    val et_id = findViewById<EditText>(R.id.et_id)
    val et_pw = findViewById<EditText>(R.id.et_pw)
    val et_phone = findViewById<EditText>(R.id.et_phone)
    val et_position = findViewById<EditText>(R.id.et_position)

    val btn_signUp = findViewById<Button>(R.id.btn_signupOk)
    val btn_signCancel = findViewById<Button>(R.id.btn_signupcancel)




    et_id.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable?) {
            val id = s.toString()
            val valid = idPattern.matcher(id).matches()
            if (!valid) {
                et_id.error = getString(R.string._5_10)
            }
        }

        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
    })

    et_pw.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable?) {
            val pw = s.toString()
            val valid = pwPattern.matcher(pw).matches()
            if (!valid) {
                et_pw.error = getString(R.string._8_15)
            }
        }

        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
    })

    et_phone.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable?) {
            val phone = s.toString()
            val valid = phonePattern.matcher(phone).matches()
            if (!valid) {
                et_phone.error = getString(R.string._10_11)
            }
        }

        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
    })

    et_name.addTextChangedListener(object : TextWatcher {
        override fun afterTextChanged(s: Editable?) {
            val name = s.toString()
            val valid = namePattern.matcher(name).matches()
            if (!valid) {
                et_name.error = getString(R.string.kor)
            }
        }

        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
    })

    //이미지 초기화
    val iv_logo = findViewById<ImageView>(R.id.imageView)
    iv_logo.setOnClickListener {
        imgSet = when ((1..6).random()) {
            1 -> R.drawable.logo1
            2 -> R.drawable.logo2
            3 -> R.drawable.logo3
            4 -> R.drawable.logo4
            5 -> R.drawable.logo5
            else -> R.drawable.logo1
        }

        iv_logo.setImageDrawable(ResourcesCompat.getDrawable(resources, imgSet, null))

    }

    btn_signUp.setOnClickListener {
        val name = et_name.text.toString()
        val id = et_id.text.toString()
        val pw = et_pw.text.toString()
        val phone = et_phone.text.toString()
        val position = et_position.text.toString()

        if (name.isBlank() || id.isBlank() || pw.isBlank() || phone.isBlank() || position.isBlank()) {
            Toast.makeText(this, getString(R.string.info), Toast.LENGTH_SHORT).show()
            return@setOnClickListener
        }


        val nameValid = namePattern.matcher(name).matches()
        val idValid = idPattern.matcher(id).matches()
        val pwValid = pwPattern.matcher(pw).matches()
        val phoneValid = phonePattern.matcher(phone).matches()

        if (!nameValid) {
            et_name.error = getString(R.string.kor)
            return@setOnClickListener
        }

        if (!idValid) {
            et_id.error = getString(R.string._5_10)
            return@setOnClickListener
        }

        if (!pwValid) {
            et_pw.error = getString(R.string._8_15)
            return@setOnClickListener
        }

        if (!phoneValid) {
            et_phone.error = getString(R.string._10_11)
            return@setOnClickListener
        }

        val intent = Intent(this, SignInPageActivity::class.java)

        //수정하겠습니다.
        intent.putExtra("userName", name)
        intent.putExtra("userId", id)
        intent.putExtra("userPw", pw)
        intent.putExtra("userTel", phone)
        intent.putExtra("userPosition",position)
        intent.putExtra("userImage",imgSet)

        startActivity(intent)
        animSlideRight(this)
        finish()
    }

    btn_signCancel.setOnClickListener {
        Toast.makeText(this@SignUpPageActivity, "취소 되었습니다.", Toast.LENGTH_SHORT).show()
        val intent = Intent(this@SignUpPageActivity, SignInPageActivity::class.java)
        startActivity(intent)
        animSlideLeft(this)
        finish()
    }


}

}

WritePageActivity.kt

package bootcamp.sparta.notlame.writePage

import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import bootcamp.sparta.notlame.R
import bootcamp.sparta.notlame.Util.animSlideLeft
import bootcamp.sparta.notlame.Util.animSlideRight
import bootcamp.sparta.notlame.mainPage.MainPageActivity
import com.google.android.material.snackbar.Snackbar

class WritePageActivity : AppCompatActivity() {

private lateinit var title: String
private lateinit var comment: String

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_write_page)


    clickSet()
}


private fun clickSet(){


    val writeTitle = findViewById<EditText>(R.id.writeTitle)
    val writeComment = findViewById<EditText>(R.id.writeComment)

    val checkBtn = findViewById<Button>(R.id.checkBtn)
    checkBtn.setOnClickListener{

        title = writeTitle.text.toString()

        comment = writeComment.text.toString()

        if (title.isNullOrEmpty()){
            Toast.makeText(this, "제목이 비어 있습니다 입력해주세요.", Toast.LENGTH_SHORT).show()
        }
        else if(comment.isNullOrEmpty()){
            Toast.makeText(this, "내용이 비어 있습니다. 입력해주세요.", Toast.LENGTH_SHORT).show()
        }
        else if((title.length<1)&&(comment.length<10)){
            Toast.makeText(this, "제목의 최소길이는 1글자 이상, 내용은 최소글자는 10글자 이상입니다.", Toast.LENGTH_SHORT).show()
        }
        else{
            // 값도 전달해야함

            val intent = Intent()//(this, MainPageActivity::class.java)

//
intent.putExtra("Title",title)
intent.putExtra("Comment",comment)
//확인용 변수
intent.putExtra("check", 1)
//registerForActivityResult를 사용
setResult(Activity.RESULT_OK, intent)
animSlideRight(this)
finish()
}
}

    val cancelBtn = findViewById<Button>(R.id.cancelBtn)
    cancelBtn.setOnClickListener{


        title = writeTitle.text.toString()

        comment = writeComment.text.toString()

        if(title.isNullOrEmpty() && comment.isNullOrEmpty()){
            val intent = Intent()//(this, MainPageActivity::class.java)
            setResult(Activity.RESULT_OK, intent)
            animSlideLeft(this)
            finish()

        }

        else{
            val intent = Intent(this, MainPageActivity::class.java)

//
var snackBar = Snackbar.make(it, R.string.warningBack, Snackbar.LENGTH_SHORT)
.setAction(R.string.button_done, View.OnClickListener {

                    setResult(Activity.RESULT_OK, intent)
                    finish()

                    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
                })
            snackBar.show()
        }

    }
}

}

activity_detail_page.xml

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/linearLayout"
    android:layout_weight="0"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="20dp"
        android:scaleType="fitCenter"
        android:layout_height="50dp"
        android:src="@drawable/baseline_arrow_back_ios_24"
        android:background="@android:color/transparent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/detailImage"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:background="@drawable/image_shape"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageButton"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/detailName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/detailImage"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

<ScrollView
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/detailSubject"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:layout_marginBottom="5dp"/>

        <TextView
            android:id="@+id/detailContent"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="15sp" />
    </LinearLayout>
</ScrollView>

<TextView
    android:id="@+id/textView"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/comment"
    android:textSize="15sp"
    android:layout_margin="5dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@color/black"/>

<ScrollView
    android:layout_weight="1"
    android:layout_width="match_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:id="@+id/detailInputArea"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</ScrollView>

<LinearLayout
    android:id="@+id/linearLayout3"
    android:layout_weight="0"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent">

    <ImageView
        android:id="@+id/userImageComment"
        android:background="@drawable/image_shape"
        android:layout_width="20dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>

    <EditText
        android:id="@+id/detailInputEdit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="@string/noticeComment"
        android:layout_weight="8" />

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/detailInputBtn"
        android:background="@drawable/detail_btn"
        android:textColor="@color/white"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_weight="2"
        android:text="@string/butotn_input"/>
</LinearLayout>

activity_main_page.xml

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".mainPage.MainPageActivity">

<include
    layout="@layout/main_page_layout"/>

</androidx.constraintlayout.widget.ConstraintLayout>

activity_sign_in_page.xml

<!-- 첫 번째 TextView -->
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="32dp"
    android:gravity="center"
    android:text="@string/noticeTeam"
    android:textColor="#FFFFFF"
    android:textSize="18sp"
    android:textStyle="bold" />

<!-- 아이디 레이블 -->
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start"
    android:layout_marginStart="8dp"
    android:layout_marginBottom="8dp"
    android:text="@string/id"
    android:textColor="#FFFFFF"
    android:textSize="18sp"
    android:textStyle="bold" />

<!-- 아이디 입력 필드 -->
<EditText
    android:id="@+id/editTextId"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:background="@color/white"
    android:hint="@string/id"
    android:inputType="text"
    android:padding="16dp"
    android:textColor="@color/black" />

<!-- 비밀번호 레이블 -->
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start"
    android:layout_marginStart="8dp"
    android:layout_marginBottom="8dp"
    android:text="@string/password"
    android:textColor="#FFFFFF"
    android:textSize="18sp"
    android:textStyle="bold" />

<!-- 비밀번호 입력 필드 -->
<EditText
    android:id="@+id/editTextPassword"
    android:layout_width="match_parent"
    android:layout_height="52dp"
    android:layout_marginBottom="32dp"
    android:background="@color/white"
    android:hint="@string/password"
    android:inputType="textPassword"
    android:padding="16dp"
    android:textColor="@color/black" />

<!-- 로그인 버튼 -->
<Button
    android:id="@+id/buttonLogin"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp"
    android:background="@drawable/button_background_rect"
    android:text="@string/logIn"
    android:textColor="#FFFFFF" />

<!-- 회원 가입 버튼 -->
<Button
    android:id="@+id/buttonSignUp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp"
    android:background="@drawable/button_background2_rect"
    android:radius="0dp"
    android:text="@string/signUp"
    android:textColor="#FFFFFF" />

activity_write_page.xml

<EditText
    android:id="@+id/writeTitle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="10dp"
    android:hint="@string/subject"
    android:textSize="20dp"/>

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="10dp"
    app:cardCornerRadius="16dp"
    app:cardElevation="5dp"
    app:strokeColor="@color/black"
    app:strokeWidth="5dp">

    <EditText
        android:id="@+id/writeComment"
        android:background="@color/white"
        android:layout_margin="5dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/inputContents"
        android:textSize="16dp"/>

</androidx.cardview.widget.CardView>
<android.widget.Button
    android:id="@+id/checkBtn"
    android:layout_marginTop="50dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:text="@string/button_done"
    android:background="@drawable/btn_shape"/>

<android.widget.Button
    android:id="@+id/cancelBtn"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="10dp"
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:text="@string/cancel"
    android:background="@drawable/btn_shape"/>

main_page_layout.xml


<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

    <androidx.cardview.widget.CardView
        android:id="@+id/userImageFrame"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        app:cardCornerRadius="50dp"
        app:cardElevation="5dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/userImage"
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:src="@drawable/profile_set"/>
    </androidx.cardview.widget.CardView>

    <TextView
        android:id="@+id/nameTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="15dp"
        android:layout_marginTop="35dp"
        android:text="@string/nameColon"
        android:textSize="15dp"
        app:layout_constraintStart_toEndOf="@+id/userImageFrame"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/userNameText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:hint="@string/name"
        android:textSize="15dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/nameTextView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.380" />

    <TextView
        android:id="@+id/positionTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="15dp"
        android:layout_marginBottom="35dp"
        android:text="@string/positionColon"
        android:textSize="15dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toEndOf="@+id/userImageFrame" />

    <TextView
        android:id="@+id/userPositionText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:hint="@string/position"
        android:textSize="15dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/positionTextView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.620" />

    <androidx.appcompat.widget.AppCompatImageButton
        android:id="@+id/personInfoBtn"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:background="@drawable/person_icon"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/boardAddBtn"
        app:layout_constraintHorizontal_bias="0.950"
        app:layout_constraintStart_toEndOf="@+id/userImageFrame"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.appcompat.widget.AppCompatImageButton
        android:id="@+id/boardAddBtn"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginEnd="25dp"
        android:background="@drawable/add_icon"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    app:cardCornerRadius="50dp"
    app:cardElevation="5dp">
    <TextView
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/teamMember"/>
</androidx.cardview.widget.CardView>

<!--  List  -->
<HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <androidx.cardview.widget.CardView
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_margin="10dp"
            app:cardCornerRadius="50dp"
            app:cardElevation="5dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/userImageList1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/profile_set" />
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_margin="10dp"
            app:cardCornerRadius="50dp"
            app:cardElevation="5dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/userImageList2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/profile_set" />
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_margin="10dp"
            app:cardCornerRadius="50dp"
            app:cardElevation="5dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/userImageList3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/profile_set" />
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_margin="10dp"
            app:cardCornerRadius="50dp"
            app:cardElevation="5dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/userImageList4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/profile_set" />
        </androidx.cardview.widget.CardView>

        <androidx.cardview.widget.CardView
            android:layout_width="75dp"
            android:layout_height="75dp"
            android:layout_margin="10dp"
            app:cardCornerRadius="50dp"
            app:cardElevation="5dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/userImageList5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/profile_set" />
        </androidx.cardview.widget.CardView>
    </LinearLayout>
</HorizontalScrollView>

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    app:cardCornerRadius="50dp"
    app:cardElevation="5dp">
    <TextView
        android:layout_margin="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/teamNoticeBoard"/>
</androidx.cardview.widget.CardView>
<!--    팀 게시판    -->


    <!--    team_board_frame.xml    -->
    <!--    team_board_comment_frame.xml      -->

</LinearLayout>

my_page_activity.xml

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".myPage.MyPageActivity">

    <ImageView
        android:id="@+id/mypage_iv_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="25dp"
        tools:src="@drawable/mypage_dummy_image"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/mypage_tv_name"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:gravity="center"
        android:textSize="25sp"
        app:layout_constraintBottom_toTopOf="@+id/mypage_profile_cardview"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mypage_iv_image"
        tools:text="정나미" />

    <androidx.cardview.widget.CardView
        android:id="@+id/mypage_profile_cardview"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        app:cardBackgroundColor="@color/white"
        app:layout_constraintBottom_toTopOf="@+id/mypage_tv_todo_title"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mypage_tv_name">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_margin="8dp"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/mypage_tv_phone_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:gravity="center"
                android:textSize="13sp"
                app:layout_constraintBottom_toTopOf="@+id/mypage_tv_position_title"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                android:text="전화번호" />

            <TextView
                android:id="@+id/mypage_tv_phone_value"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textSize="20sp"
                app:layout_constraintBottom_toTopOf="@+id/mypage_tv_position_value"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/mypage_tv_phone_title"
                app:layout_constraintTop_toTopOf="parent"
                tools:text="010-1234-5678" />

            <TextView
                android:id="@+id/mypage_tv_position_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:gravity="center"
                android:textSize="13sp"
                app:layout_constraintBottom_toTopOf="@+id/mypage_tv_status_title"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/mypage_tv_phone_title"
                android:text="직책" />

            <TextView
                android:id="@+id/mypage_tv_position_value"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textSize="20sp"
                app:layout_constraintBottom_toTopOf="@+id/mypage_tv_status_value"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/mypage_tv_position_title"
                app:layout_constraintTop_toBottomOf="@+id/mypage_tv_phone_value"
                tools:text="팀장" />

            <TextView
                android:id="@+id/mypage_tv_status_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="20dp"
                android:layout_marginEnd="20dp"
                android:gravity="center"
                android:textSize="13sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/mypage_tv_position_title"
                android:text="상태" />

            <TextView
                android:id="@+id/mypage_tv_status_value"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textSize="20sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/mypage_tv_status_title"
                app:layout_constraintTop_toBottomOf="@+id/mypage_tv_position_value"
                android:text="온라인" />
        </androidx.constraintlayout.widget.ConstraintLayout>

    </androidx.cardview.widget.CardView>


    <TextView
        android:id="@+id/mypage_tv_todo_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:text="@string/mypage_todo_textview_title"
        android:textSize="15sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mypage_profile_cardview" />

    <EditText
        android:id="@+id/mypage_et_todo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:hint="@string/mypage_todo_edittext_hint"
        app:layout_constraintEnd_toStartOf="@+id/mypage_btn_todo"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mypage_tv_todo_title" />

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/mypage_btn_todo"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_marginEnd="10dp"
        android:background="@color/blue"
        android:text="@string/butotn_input"
        android:textColor="@color/white"
        app:layout_constraintBottom_toBottomOf="@+id/mypage_et_todo"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/mypage_et_todo"
        app:layout_constraintTop_toTopOf="@+id/mypage_et_todo" />

    <LinearLayout
        android:id="@+id/mypage_linearlayout_todo"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="vertical"
        app:layout_constraintBottom_toTopOf="@+id/mypage_btn_done"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/mypage_et_todo">

    </LinearLayout>


    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/mypage_btn_done"
        android:layout_width="0dp"
        android:layout_height="30dp"
        android:layout_margin="25dp"
        android:background="@color/blue"
        android:text="@string/button_done"
        android:textColor="@color/white"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

sign_up_layout.xml

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="135dp"
        android:layout_height="135dp"
        android:layout_marginTop="104dp"
        android:src="@drawable/logo1"
        android:scaleType="centerCrop"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.423"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <TextView
        android:id="@+id/tv_name"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="24dp"
        android:text="@string/name"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <EditText
        android:id="@+id/et_name"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="3dp"
        android:layout_marginEnd="24dp"
        android:ems="10"
        android:textSize="18sp"
        android:hint="@string/name"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_name" />

    <TextView
        android:id="@+id/tv_phone"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="24dp"
        android:text="@string/phoneNumber"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/et_pw" />

    <EditText
        android:id="@+id/et_phone"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="3dp"
        android:layout_marginEnd="24dp"
        android:ems="10"
        android:textSize="18sp"
        android:hint="@string/inputPhoneNumber"
        android:inputType="phone"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_phone" />

    <TextView
        android:id="@+id/tv_position"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="24dp"
        android:text="@string/position"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/et_phone" />

    <EditText
        android:id="@+id/et_position"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="3dp"
        android:layout_marginEnd="24dp"
        android:ems="10"
        android:textSize="18sp"
        android:hint="@string/inputPosition"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_position" />

    <TextView
        android:id="@+id/tv_id"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="24dp"
        android:text="@string/id"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/et_name" />

    <EditText
        android:id="@+id/et_id"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="3dp"
        android:layout_marginEnd="24dp"
        android:ems="10"
        android:textSize="18sp"
        android:hint="@string/inputID"
        android:inputType="text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_id" />

    <TextView
        android:id="@+id/tv_pw"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="24dp"
        android:text="@string/password"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/et_id" />

    <EditText
        android:id="@+id/et_pw"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_marginStart="24dp"
        android:layout_marginTop="3dp"
        android:layout_marginEnd="24dp"
        android:ems="10"
        android:textSize="18sp"
        android:hint="@string/inputPassword"
        android:inputType="textPassword"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tv_pw" />

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/btn_signupOk"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginTop="248dp"
        android:layout_marginEnd="24dp"
        android:text="@string/button_done"
        android:textColor="@color/white"
        android:textSize="18sp"
        android:textStyle="bold"
        android:backgroundTint="@color/blue"
        android:radius="0dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/et_pw" />

    <androidx.appcompat.widget.AppCompatButton
        android:id="@+id/btn_signupcancel"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="@string/cancel"
        android:textColor="@color/white"
        android:textSize="18sp"
        android:textStyle="bold"
        android:backgroundTint="@color/blue"
        android:radius="0dp"
        app:layout_constraintEnd_toEndOf="@+id/btn_signupOk"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/btn_signupOk"
        app:layout_constraintTop_toBottomOf="@+id/btn_signupOk" />


    <TextView
        android:id="@+id/title1"
        android:layout_width="336dp"
        android:layout_height="71dp"
        android:text="@string/notice2Team"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toTopOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="@+id/tv_name"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="@+id/tv_name"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />

</androidx.constraintlayout.widget.ConstraintLayout>

team_board_comment_frame.xml

<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/teamBoardDetailFrame1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp">

<androidx.cardview.widget.CardView
    android:id="@+id/teamBoardCommentFrame1"
    android:background="@color/lightGray"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardCornerRadius="16dp"
    app:cardElevation="4dp">
    <TextView
        android:id="@+id/teamBoardComment1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textAlignment="center"
        android:gravity="center"
        android:hint="setting"
        android:textSize="15dp"/>

    <TextView
        android:id="@+id/teamBoardDetailViewMore1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="더보기"
        android:textSize="10dp"
        android:layout_gravity="right|bottom"/>

</androidx.cardview.widget.CardView>

</androidx.constraintlayout.widget.ConstraintLayout>

team_board_frame.xml

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/teamBoardFrame1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/rec_shape">

<androidx.cardview.widget.CardView
    android:id="@+id/teamBoardImageFrame1"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_margin="10dp"
    app:cardCornerRadius="50dp"
    app:cardElevation="5dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <androidx.appcompat.widget.AppCompatImageButton
        android:id="@+id/teamBoardUserImage1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/profile_set" />
</androidx.cardview.widget.CardView>

<TextView
    android:id="@+id/teamBoardUserName1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:hint="정나미"
    android:textSize="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.045"
    app:layout_constraintStart_toEndOf="@+id/teamBoardImageFrame1" />

<TextView
    android:id="@+id/teamBoardUserDate1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp"
    android:hint="2023-08-14"
    android:textSize="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.010"
    app:layout_constraintStart_toEndOf="@+id/teamBoardImageFrame1"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/teamBoardTitle1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="165dp"
    android:layout_marginEnd="150dp"
    android:gravity="center"
    android:hint="Title"
    android:textAlignment="center"
    android:textSize="15dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/teamBoardImageFrame1"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.500" />

</androidx.constraintlayout.widget.ConstraintLayout>

대문자와 소문자

class Solution {
fun solution(myString: String) = myString.toList()
.map { if (it.isLowerCase()) it.toUpperCase() else it.toLowerCase() }
.joinToString("")
}

인덱스 바꾸기

class Solution {
fun solution(my_string: String, num1: Int, num2: Int): String {
var stringArray = my_string.toCharArray()
val tempValue = stringArray[num1]

    stringArray[num1] = stringArray[num2]
    stringArray[num2] = tempValue

    return stringArray.joinToString("")
}

}

배열의 유사도

class Solution {
fun solution(s1: Array, s2: Array): Int {
var answer: Int = 0
s1.forEach { s1n ->
s2.forEach { s2n ->
if(s1n == s2n) answer++
}
}
return answer
}
}

숫자 찾기

class Solution {
fun solution(num: Int, k: Int): Int {
val result = num.toString().indexOf(k.toString())
if(result >=0) return result +1
return result
}
}

문자열 정렬하기 (2)

class Solution {
fun solution(my_string: String): String {
var answer: String = my_string.toLowerCase().toCharArray().sorted().joinToString("")
return answer
}
}

머쓱이보다 키가 큰 사람

class Solution {
fun solution(array: IntArray, height: Int): Int {
var answer: Int = 0
for(i in 0..array.size - 1){
if(array[i] > height){
answer += 1
}
}
return answer
}
}

직사각형 넓이 구하기

class Solution {
fun solution(dots: Array): Int {
val coordX = dots.map { it[0] }.toSortedSet()
val coordY = dots.map { it[1] }.toSortedSet()

    return (coordX.last() - coordX.first()) * (coordY.last() - coordY.first())
}

}

이진수 더하기

class Solution {
fun solution(bin1: String, bin2: String): String {
return Integer.toBinaryString(Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2))
}
}

연속된 수의 합

class Solution {
fun solution(num: Int, total: Int): IntArray {
val center = total / num.toFloat()
return if(num % 2 == 0) {
(center.toInt() - (num / 2 - 1) .. center.toInt() + num / 2)
} else {
(center.toInt() - (num - 1) / 2 .. center.toInt() + (num - 1) / 2)
}.toList().toIntArray()
}
}

profile
열심히 하자

0개의 댓글