댓글 입력창에 텍스트를 입력하고 comment 버튼을 누르면 입력값을 extras 에 저장한 뒤, 댓글이 추가되는 로직을 짜는 것이 목표이다.
package com.test.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.view.View
class OnePost : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_onepost)
val etComment = findViewById<EditText>(R.id.et_comment)
val btnComment = findViewById<Button>(R.id.btn_comment)
val tvCommentShow = findViewById<TextView>(R.id.tv_comment_show)
btnComment.setOnClickListener {
val commentText = etComment.text.toString().trim()
if (commentText.isNotEmpty()) {
// 새 댓글 추가
val existingText = tvCommentShow.text.toString()
val newComment = "$existingText\n$commentText"
tvCommentShow.text = newComment
}
}
}
}
이렇게 짜니까 댓글도 보여지지 않았다.
프로필과 유저명도 버튼을 눌러야 보여지게 바꿔야 할 듯 하다.
package com.test.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.view.View
class OnePost : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_onepost)
// 댓글입력창
val etComment = findViewById<EditText>(R.id.et_comment)
// 댓글입력 버튼
val btnComment = findViewById<Button>(R.id.btn_comment)
// 댓글 보여지는 곳
val tvCommentShow = findViewById<TextView>(R.id.tv_comment_show)
// 댓글 작성자
val tvName = findViewById<TextView>(R.id.tv_name_onepost)
// 댓글 작성자 프로필
val ivUser = findViewById<ImageView>(R.id.iv_user_onepost)
// 초기에는 댓글 입력 요소 및 댓글 표시를 보이지 않도록 설정
tvName.visibility = View.GONE
tvCommentShow.visibility = View.GONE
ivUser.visibility = View.GONE
btnComment.setOnClickListener {
val commentText = etComment.text.toString().trim()
if (commentText.isNotEmpty()) {
// 댓글을 입력했을 때만 댓글 입력 요소 및 댓글 표시를 보이게 변경
tvName.visibility = View.VISIBLE
tvCommentShow.visibility = View.VISIBLE
ivUser.visibility = View.VISIBLE
// 비어있는 댓글 텍스트에 새로 입력한 댓글 표시
val existingText = tvCommentShow.text.toString()
val newComment = "$existingText\n$commentText"
tvCommentShow.text = newComment
else {
Toast.makeText(this, "댓글을 입력해주세요.", Toast.LENGTH_SHORT).show()
}
}
}
}
.
.
.
// 기존 댓글 텍스트에 새 댓글 추가하여 표시
val existingText = tvCommentShow.text.toString()
val newComment = "$existingText\n$commentText"
tvCommentShow.text = newComment
첫 트때 이 부분을 빼먹고 썼더니
이런 식으로 나왔다..ㅎ
.
.
.
좋아요 버튼을 누르면 비어있던 따봉이 채워진 따봉으로 바뀌게 하는 것이 두 번째 목표이다.
따봉 이미지 2개를 drawable 폴더에 추가한 뒤
package com.test.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.view.View
class OnePost : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_onepost)
val btnLike = findViewById<Button>(R.id.btn_like_onepost)
var isLiked = false
btnLike.setOnClickListener {
// 좋아요 버튼 클릭 시 이미지 변경
if (isLiked) {
btnLike.setBackgroundResource(R.drawable.fill_like) // fill_like.xml 파일에 맞게 변경
} else {
btnLike.setBackgroundResource(R.drawable.like) // 비어있는 좋아요 이미지로 변경
}
isLiked = !isLiked
}
}
}
isLiked = !isLiked 부분에서 Val cannot be reassigned 오류가 난다.
kotlin 에서 val 로 선언된 변수는 값을 변경할 수 없다. 버튼을 누르면 좋아요 버튼 상태가 바뀌어야 하기 때문에 var 로 재선언했다.
.
.
.
.
.
.
.
.
제목 입력칸이 글자 크기에 비해 높이가 좁고, 내용 입력칸 커서 시작 부분이 윗 부분이 아닌 중간부터 시작하는 것이 마음에 들지 않는다.
아무리 수정하고 수정해도 만족 못하는 것이 내 프로젝트인듯..
부족한 점이 많은만큼 올라갈 일도 많은 것이라고 생각해야지.