Android/Basic

    [Android] JetPack Navigation으로 Bottom Navigation 설정하기

    [Android] JetPack Navigation으로 Bottom Navigation 설정하기

    안드로이드를 공부하면서 간단한 화면 전환은 intent로 구현했었다. 하지만 레이아웃이 복잡해질수록 코드가 길어지며 가독성이 떨어지는 문제점을 확인할 수 있었다. 이 경우를 해결하기 위해 JetPack Navigation이 등장하였다. 네비게이션을 사용하면 한 눈에 볼 수 있는 화면들과, 프래그먼트의 이동을 더욱 쉽게 구현할 수 있는 장점이 있다. Navigation 설정하기 //네비게이션 def nav_version = '2.4.1' implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" build.grad..

    [Android] BottomNavigation

    [Android] BottomNavigation

    Jetpack Navigation을 사용하면 바텀네비게이션을 쉽게 구현할 수 있지만 이번에는 제트팩 네비게이션을 사용하지 않고, FLO 앱의 바텀네비게이션을 구현해보자. 구글에서 하나의 액티비티 + 여러 개의 프래그먼트 구성을 밀고 있기 때문에 FLO 또한 메인액티비티에서 프래그먼트가 교환되는 형태로 구현하면 편리하다. 따라서 메인액티비티에서 바텀네비게이션을 구현해보자. 이렇게 바텀 네비게이션뷰를 메인액티비티에서 생성해주었으면 menu에서 menu 아이템을 담을 xml파일을 만들어주어야 한다. 각자의 아이콘에 맞게끔 아이콘을 설정해 준 다음, 아이디도 각자 알맞게 설정해주자. 이제 연결할 차례이다. 다시 메인액티비티.xml파일로 가서 바텀네비게이션에 menu.xml파일을 추가해주어 연결해주자. app:m..

    [Android] Data class와 Activity 데이터 전송

    [Android] Data class와 Activity 데이터 전송

    FLO앱에서 다음과 같이 미니플레이어바를 누르면 해당 노래의 정보가 담긴 액티비티로 전환이 되어야한다. 왼쪽 미니플레이어는 MainActivity이고 오른쪽은 SongActivity이다. 따라서 메인액티비티에서 눌렀을 때 노래가 재생되고 있는 제목과 가수를 오른쪽 노래액티비티로 들고가야한다. 이제 그럼 데이터를 전송해보자. 먼저 가수와 제목이 담긴 데이터클래스가 있어야한다. data class Song( val title : String = "", val singer : String = "" ) 이제 메인액티비티 미니플레이어에 속한 텍스트를 Song클래스에 저장해보자. val song = Song(binding.mainMiniplayerTitleTv.text.toString(), binding.mainM..

    [Android] Fragment과 Toast message

    [Android] Fragment과 Toast message

    Fragment UI 구성을 모듈 단위로 나누어 독립성을 추가해주고, 한 화면에 있던 UI 들을 조각이라는 단위로 재배치 하는 것 오늘 해볼 실습은 하나의 Activity안에서 Fragment가 어떻게 변환되는지를 파악하는 것이다. 위 그림과 같이 홈프래그먼트에서 앨범프래그먼트로 이동하는 것을 구현해보자. 먼저 프래그먼트 클래스를 만들어보면 액티비티클래스하고 다음과 같은 차이점이 있다. class HomeFragment : Fragment() 액티비티는 AppCompatActivity 를 상속받았지만 프래그먼트는 Fragment 를 상속받는다. Binding을 선언해주는 것에도 차이가 있다. override fun onCreate(savedInstanceState: Bundle?) { super.onCr..

    [Android] Redeclaration Error

    [Android] Redeclaration Error

    클래스를 만들 때 카멜케이스를 실수로 잘못적어서 소문자로 되어있던 중간 음절의 시작을 다시 대문자로 바꾸고 돌렸더니 Redeclaration 에러가 발생했다. ........ 처음보는 에러라 당황했지만 구글링을 해본 결과 다음과 같이 Clean Project를 해주거나, Rebuild Proejct를 하면 정상적으로 실행된다!! Build -> Clean Project or Build -> Rebuild Project