본문 바로가기

Android Project80

[kotlin] 간단한 BMI 계산기앱 만들기 신장과 체중을 입력하고 확인을 누르면 나의 BMI를 계산해서 BMI 결과값을 보여주는 간단한 앱을 만들어 볼것이다 먼저 신장과 체중을 입력해주는 메인화면을 디자인해준다 이제 MainActivity에서 확인하기 버튼을 클릭했을때 신장을 입력한값과 체중을 입력한 값을 PutExtra를 사용해서 ResultActivity로 넘겨준다. 만약에 신장값과 체중값을 넣지 않았을땐 토스트메시지가 뜨면서 페이지가 넘어가지 않도록 예외처리를 해준다 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout... 2024. 2. 26.
[kotlin] TabLayout 만들기 이런식으로 TabLayout과 Viewpager를 사용해서 클릭했을때 해당하는 프레그먼트로 이동하도록 만들어볼것이다 먼저 TabLayout과 ViewPager를 사용해서 레이아웃을 디자인해준다 나는 조금 더 예쁘게 디자인해주고 싶어서 코드들을 추가해주었다 style에 TabLayoutText를 만들어서 폰트,텍스트 크기, 텍스트 스타일 등을 추가한뒤 레이아웃 부분에 app : tabTextAppearance = "@style/TabLayout" 을 써줘서 글자를 예쁘게 꾸며줬다 그리고 사이의 간격을 띄우고싶어서 아래 코드를 추가해줬다 app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabMode="fixed" 간격 띄우는 코드 activity_tab_layout.xm.. 2024. 2. 25.
[Kotlin]댓글창 레이아웃 디자인 댓글창 레이아웃을 디자인하는중에 생각보다 헷갈리고 많이 헤매서 기록을 해두려고 한다 내가 만들고싶었던 레이아웃 디자인은 게시글을 눌렀을때 나오는 화면 밑에 댓글을 작성할수 있게하는것이였다 그리고 댓글창은 맨 아래쪽에 고정되었으면 좋겠고, 댓글창 부분 빼고 나머지는 스크롤뷰를 사용해서 스크롤이 되게 디자인을 하고싶었다 먼저 댓글창 EditText와 버튼을 디자인해주고 리니어레이아웃으로 묶어준뒤 layout_alignParentBottom = "true" 라는 코드를 추가해서 댓글창이 맨 아래쪽에 고정되도록 설정해주었다 그리고 게시글 레이아웃 밑에 댓글내용이 들어가도록 리사이클러뷰를 배치해줬다 나는 라인 바로 밑에 리사이클러뷰가 들어가도록 설정해줄것이기 때문에 라인의 id를 line이라고 정해주고 layou.. 2024. 2. 25.
[에러] No layout manager attached; skipping layout 에러 리사이클러뷰 관련 코드를 짜다가 이런 오류가 발생했다No layout manager attached; skipping layout 이 오류 때문인지 모르고 한시간동안 코드 살펴보고 헛수고했는데 알고보니깐 아주 간단한 오류였다리사이클러뷰 레이아웃부분에 아래코드 한줄만 추가해주니깐 오류가 해결되었다 app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" 2024. 2. 25.
[Kotlin] LinerLayout 왼쪽 정렬, 오른쪽 정렬 왼쪽과 오른쪽을 한줄에 같이 정렬하고 싶은 경우가 있을것이다 나는 위 사진처럼 디자인하길 원했다 닉네임,하트 이미지 부분을 양끝으로 정렬 해줘야했다 근데 저부분은 width가 전체가 아니기때문에 해당 길이에 맞게 width길이를 적용해주고, 닉네임과 하트 사이에 아래 코드를 추가시켜줬다 왼쪽, 오른쪽 정렬 코드 전체 코드이다 2024. 2. 22.
[에러] lateinit property has not been initialized 에러 커스텀 다이얼로그에서 삭제버튼을 누르면 파이어베이스에서 key값을 가져와서 삭제하는 코드를 작성하는 중에 "lateinit property key has not been initialized" 이런 오류가 발생했다초기화 오류가 발생한것이다. 아래코드처럼 써져있어서 해당 오류가 발생했다 class BoardInsideActivity : AppCompatActivity() { // key값 선언 private lateinit var key : String private val TAG = BoardInsideActivity::class.java.simpleName private lateinit var binding: ActivityBoardInsideActiviyBinding pri.. 2024. 2. 21.