본문 바로가기

전체 글100

안드로이드 tabIndicatorColor 바텀네비게이션을 만드는데 하단 메뉴를 클릭하고 활성화하면 선택된 탭이 하얗게 칠해져있다. 난 검은 색 메뉴인데... 그렇다고 메테리얼 테마를 적용안하자니 일일히 다 구현하는 건 너무나도 귀찮다. 이 부분만 없애고 싶을 때는 레이아웃/바텀네비이게이션이 있는 파일이름.xml 안에서 바텀네비게이션 뷰에 tabIndicatorColor 속성을 추가하고 적용하고 싶은 값을 넣어주면 된다. 2024. 1. 24.
(안드로이드 코틀린) 리사이클러 뷰어로 아이템 추가하기 이전 게시글에서 채팅창을 리사이클러뷰와 뷰홀더로 구현해보았다. 채팅도 써봐야할 것 아닌가? 아래 링크는 이전 글이다. https://kks950115.tistory.com/67 class ChatLogAdapter(var chatchatItems:MutableList) : RecyclerView.Adapter() { private var chatItems = chatchatItems //.... override fun getItemViewType(position: Int): Int { return chatItems[position].viewType } fun addItems (list:ChatLog){ // 데이터를 부분적으로 더하는 로직이다. chatItems.add(list) this.notifyIt.. 2024. 1. 23.
안드로이드 코틀린 리사이클러뷰 뷰홀더 사용하기 간단한 채팅창 화면을 구현하기 위해 뷰홀더를 사용했다. 다른 블로그들을 찾아보면 잘 설명해준 것들이 많다. 이 글은 그냥 다양한 예시 중 1 이라고 생각하면 된다. 당근마켓을 참고해서 만들었다. 클론코딩이라고 봐도 무방하다. 우선 xml부터... 왼쪽에 표시되는 상대방 오른쪽에 표시되는 나 채팅이 표시되는 액티비티 클래스 @Parcelize data class ChatDetail( val personName : String, var temper : String, var tradeStatus : String, val productName : String, var productPrice : String, var productPic : Int ) : Parcelable @Parcelize data class .. 2024. 1. 22.
안드로이드 코틀린 : 프래그먼트에서 다이얼로그 확인 버튼 누르면 안닫히게 (다이얼로그 유지하기) 다이얼로그 안에서 유효성 검사를 하려는데 확인 버튼을 누르면 바로 닫힌다. 닫히면 안되는데.... 아래는 검색해서 얻은 답. binding.ivAddContact.setOnClickListener {// val alertDialog : AlertDialog var builder = AlertDialog.Builder(context) builder.setTitle("연락처 추가하기") var view = layoutInflater.inflate(R.layout.dialog_addcontact, null) builder.setView(view) var listener = DialogInterface.OnClickListener { p0, p1 -> //보통이라면 여기에 코드가 있지만 비어놓고 아래에 구현을 .. 2024. 1. 19.
android.view.WindowLeaked:[액티비티 경로] has leaked window [액티비티 이름] that was originally added here 액티비티에서 다이얼로그 창을 열어놓고, 해당 다이얼로그 dismiss()로 삭제하지 않고, 액티비티를 종료하면 발생한다. ondestroy()를 오버라이드하여 해당 다이얼로그를 dismiss() 해주면 발생하지 않는다. 2024. 1. 18.
TIL : 프래그먼트에서 액티비티로 데이터 전해주기 각각의 프로젝트들은 다양한 방법으로 데이터를 전해줄 것이다. 내 경우엔 메인 액티비티 안에 프래그먼트가 있고, 이 프래그먼트 안에서 메인 액티비티가 아닌 다른 액티비티로 정보를 전해줘야 했다. 학원에서 준 예제를 잘못 이해해서 헤맸었기 때문에 같은 실수를 방지하고자 정리해놓는다. 우선 나는 프래그먼트에서 다른 액티비티로 바로 전해주는 줄 알았다. 하지만 그게 아니였다. 메인 액티비티를 거친 뒤에 메인 액티비티에서 다른 액티비티로 전해주는 것이다. 프래그먼트 interface FragmentDataListener { fun onDataReceived(data: Member) } class MyContactsFragment : Fragment() { private var _binding: FragmentMy.. 2024. 1. 17.
TIL 코틀린 : sync project with gradle files, 클래스 순환 참조, RGB 투명도 주기 sync project with gradle files git pull로 땡겨오면 sync project with gradle files 을 눌러주자....아니면 클린 프로젝트나.... 리빌드 프로젝트를.... 방금 전까지 잘 되던게 git pull 하자마자 parcelable을 읽지못하더라. gradle도 바뀐거 없는데 왜 안되지 했는데 그냥 싱크가 안맞아서 그런 것이였다. 클래스 순환 참조 클래스를 만드는데 아래와 같은 상황이 되었다. @Parcelize data class Group( var groupImg : Int, var groupName : String, var groupDesc: String, var members: ArrayList, var posts : ArrayList ) : Parc.. 2024. 1. 16.
안드로이드 코틀린 : fatal: refusing to merge unrelated histories, github권한 설정(커밋안됨,The requested URL returned error: 403) fatal: refusing to merge unrelated histories git push를 하려는데 refusing to merge unrelated histories 이라는 오류가 뜨면서 push가 되지 않았다. 상황은 깃허브 저장소에 로컬 저장소에 있던 프로젝트를 푸쉬하려니까 떴다. 이런 경우엔 아래 코드를 입력해주면 pull을 실행할 수 있다. it pull origin 브런치명 --allow-unrelated-histories 원인은 기록상 아무런 관련이 없는 코드를 푸쉬하려고 해서 거부하는 것이라고 한다. --allow-unrelated-histories 를 입력하여 먼저 pull 해온 뒤에 push를 하니 문제없이 잘 작동했다. github권한 설정 부트캠프에서 처음 팀장을 하는데 조원.. 2024. 1. 15.
TIL : BottomNavigationView 구현 바텀 네비게이션을 뷰라는 하단메뉴가 이미 있다고 한다. 미리 구현되어 있는 게 참 많은 거 같다. 우선 메뉴를 구현해주자 res/menu/bottom_menu.xml을 만들어주었다. 경로를 꼭 지켜줘야한다. 메뉴를 클릭하면 글자색과 아이콘 색이 바뀌게 하고 싶어서 스타일도 만들어주었다. 해당 파일은 res/color/bottom_menu_style.xml이다. 뒤에 파일이름은 맘대로 적어도 상관없지만 res/color는 반드시 지켜줘야한다. 적용될 화면에다가 배치할 차례다. res/layout/activity_home.xml이라 만들고 배치하였다. //여기다가 프래그먼트도 구현할거다. //바텀네비게이션뷰 com.google.android.material.bottomnavigation.BottomNavig.. 2024. 1. 12.