Activity에서 fragment로 데이터를 전달할 때, 일반적으로 String인 경우에 putString으로 보낸다. 하지만, 보내야 하는 데이터가 많은 경우, 또는 List를 보내야 하는 경우에 하나하나 해줘야한다. 이러한 경우에는 객체로 보내면 된다. putSerializable을 사용한다. 이 글에서는 예제로 Data Class를 전달해본다. 아래와 같이 DataClass를 생성할 때, Serializable을 상속받아 생성한다. import com.capstone.traffic.model.network.sk.direction.dataClass.itineraries data class Serial(val ser: List?) : java.io.Serializable 이후에 아래와 같은 형태로 F..
intent를 이용하여, 다른 액티비티에 데이터를 전달하는 상황이 올 경우가 있다. 배열을 넘겨줄 수도 있지만, 데이터 클래스를 이용하여 전달하는 방법이 있다. parcelize 사용을 위해 plugins에 추가를 해준다. plugins{ id "kotlin-parcelize" } 그리고 전달하고자 하는 데이터 클래스를 정의할 때, 다음과 같이 정의를 해준다 (예시) @Parcelize data class NeighborLineData( val line : String, var left : String? = null, val center : String, var right : String? = null ) : Parcelable 전달은 다음과 같이 하면 된다. val nlData = NeighborLin..
text가 입력이 되는 뷰에 ''를 쓰기위해 아래와 같이 사용하면 android:text="
scrollview 안에 recyclerview를 넣어서 구현을 할때, recyclerview가 추가된 만큼 scrollview도 늘어나서, 스크롤을 해야하는 경우가 필요하면, scrollview -> NestedScrollview 로 바꾸고 리사이클러뷰에 아래 코드를 추가하면 된다. android:overScrollMode="never" android:nestedScrollingEnabled="false"
리사이클러뷰를 이용하여 스크롤뷰를 제작하던중, 스크롤을 하기전에는 데이터가 잘 반영되어 나왔지만 스크롤을 하게되면 데이터가 섞이는 현상이 생겼다. 이는 리사이클러뷰의 특징 중에 하나인 재사용 때문이라고 한다. 이를 해결하기 위한 방법은 어뎁터에 getItemViewType을 오버라이드 해주는 것이다. override fun getItemViewType(position: Int): Int { return position }
Retrofit을 이용하여, 개발하던 중에 쿼리가 인코딩되어 정상적인 주소가 아니게 되는 경우가 발생했다. 서울시 실시간 열차 위치 정보를 받아오고자 아래의 예시처럼 요청인자 "2호선"을 @Path를 이용하여 사용했다. http://swopenapi.seoul.go.kr/api/subway/sample/xml/realtimePosition/0/5/2호선 하지만 결과적으로 아래와 같은 주소로 요청했다. http://swopenapi.seoul.go.kr/api/subway/77517057686b79763530594254676d/json/realtimePosition/0/1000/2%ED%98%B8%EC%84%A0 결과적으로 [2호선 -> 2%ED%98%B8%EC%84%A0] 로 인코딩되는 결과가 발생했다...