전체 글 (24) 썸네일형 리스트형 [JAVA][Android] SpannableStringBuilder로 TextView의 일부에만 스타일 지정하기 SpannableStringBuilder는 Text의 스타일을 지정할 때 이용하는 인터페이스 중 하나로, 주로 인터페이스의 setSpan 메소드를 활용하여 뷰의 일부 문자에만 스타일을 지정할 수 있다. *공식 사이트 참고 https://developer.android.com/reference/android/text/SpannableStringBuilder SpannableStringBuilder | Android Developers android.net.wifi.hotspot2.omadm developer.android.com 간단한 활용 예시를 보자 import android.text.SpannableStringBuilder import android.text.Spanned import android... [JAVA][Android] Bundle로 클래스 객체 전달하기 이번 포스팅에서는 Bundle에 클래스 객체를 전달하는 방법에 대해 정리하겠다. 클래스 객체를 전달할 수 있다는 사실을 몰랐을 때에는 객체가 가지고있는 데이터 하나하나를 따로 저장하여 전달하다 보니 전달해야 하는 데이터가 많아져 곤란했었다. 클래스 객체를 전달하면 데이터 하나만 전달해도 받는 시점에 전달받은 데이터에서 값을 추출해서 사용할 수 있으니 훨씬 편리하다 방법은 쉽다. /**수신*/ TestClass testClass; testClass = (TestClass) bundle.getSerializable("TEST_CLASS_INSTANCE"); /**송신*/ Bundle bundle = new Bundle(); bundle.putSerializable("TEST_CLASS_INSTANCE", (.. [JAVA][Android] JSON / GSON / JACKSON 데이터 작업 시 자주 사용하는 JSON과 GSON, Jackson를 분석하여 정리해보겠다. JSON : 자바스크립트에서 사용하는 객체 표기법 https://developer.android.com/reference/org/json/package-summary?hl=en org.json | Android Developers android.net.wifi.hotspot2.omadm developer.android.com JSON은 네 종류의 Class, 한 종류의 Exception를 가지고 있다. 체감상 자주 사용하는 Class는 JSONObject와 JSONArray이며 주로 서버와 웹 또는 앱 간의 데이터 통신 시 사용하는 데이터 형식이다. Key와 Value의 쌍으로 이루어진 형태이다. *서버에서 받는 .. [JAVA][Android] ActivityResultLauncher를 이용한 액티비티 간의 통신 작업을 하며 액티비티 간 전환과 데이터 통신은 꼭 필요하다. 예전에는 이와 같은 상황에 startActivityForResult()나 onActivityResult()를 사용했던 것 같은데 현재는 Deprecated되었고 ActivityResultLauncher 콜백을 이용하여 구현하는 경우가 대부분인 듯 하다. 그럼 ActivityResultLauncher 사용 예시를 소스와 함께 살펴보겠다. 우선 MainActivity에 callback을 등록하고 타 액티비티로 전환한다. (주석 참고) SubActivity에서 setResult를 통해 int 타입의 code를 전달할 것이므로, 미리 정의하여 callback에서 받을 준비를 한다. 나는 code를 임의로 96201로 정의한 뒤, callback 메소드.. [JAVA][Android] 데이터 직렬화 (Serialize) 데이터 직렬화 (Serialize) *데이터 직렬화는 1. 객체를 저장하는 경우 2. 데이터를 DB에 올리는 경우 3. 파일을 작성하는 경우 4. 파싱할 데이터를 통신하는 경우 등 여러가지 케이스에 유의미한 데이터를 저장해두기 위해 사용한다. *유의미한 데이터 : 값(value)을 가지고 있다. *무의미한 데이터 : 참조변수. 유의미한 데이터의 주소(address)를 가지고 있다. -> 데이터가 값의 주소를 가지고 있는 경우, 데이터를 사용하려고 할 때 해당 데이터의 주소는 바뀌어 의미를 잃었을 가능성이 크다. 또한 String 형식의 값이 참조변수로 구현되어 있는 경우, 다른 형식들과는 다르게 메모리가 순서대로 배열되어 있지 않다. 따라서 직렬화가 필요하다. == 연속적인 데이터로 변환하는 과정이 필요.. [JAVA][Android] 액티비티 종료 전 주요 데이터를 Bundle에 저장하여 재활용하기 이번 포스팅은 안드로이드 앱이 의도치 않게 죽었을 때, 마지막 시점의 필요한 데이터를 저장해두는 방법에 대해 정리한다. 이 기능을 활용하여 중단된 액티비티를 resume했을 때 저장된 데이터를 이용하여 화면을 재구성 할 수 있다. @Override protected void onSaveInstanceState(@NonNull Bundle outState) { outState.putBoolean("BUNDLE_BOOL",true); outState.putString("BUNDLE_STRING","hello!"); outState.putInt("BUNDLE_INT",100); outState.putLong("BUNDLE_LONG",100.0); super.onSaveInstanceState(outState).. 이전 1 2 3 4 다음