JAVA (22) 썸네일형 리스트형 [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).. [JAVA][Android] ImageView 영역에 원하는 radius값을 반영하는 setOutlineProvider 이번 포스팅은 이미지뷰에 scaleType-centerCrop이 적용되지 않을 경우 사용할 수 있는 setOutlineProvider 메소드를 정리한다. scaleType 속성이 어떤 경우에 작동하지 않는 건지는 .. 잘 모르겠음 아래는 적용한 소스다. imageView.setOutlineProvider(new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { outline.setRoundRect(8,8,view.getWidth()-8,view.getHeight()-8,12); } }); imageView.setClipToOutline(true); 선언한 ImageView 객체에 setOutlineP.. [JAVA][Android] ProgressBar 디자인 java 코드로 변경하기 (+ 변경 시 비가시화 처리 되는 현상 해결방법) 만약 Progress의 색상을 바꿔야 하는 경우, 현재 적용 되어있는 drawable파일을 추출하여 변경하려고 할 때, 단일 색상 변경은 가능하지만 startColor, centerColor, endColor (그라데이션 구현) 까지 구현하지는 못한다. 그래서 아예 drawable 파일을 2개 만들어놓고 필요할 때 java파일에서 변경해주는데, Drawable progressDrawable = mContext.getResources().getDrawable(R.drawable.progressDrawableFile); progressBar.setProgressDrawable(progressDrawable); 위와 같이 변경할 경우 손쉽게 변경할 수 있지만 이 경우 간혹 프로그레스 바가 비가시화 처리 되는 .. 이전 1 2 3 4 다음