하루에 0.01%라도 성장하자
반응형

Develop/Android 71

Fragment 변경시 발생할 수 있는 에러. Error msg : java.lang.IllegalStateException: commit already called

이번에 업데이트 중인 앱의 UI를 변경하다가 BottomNavigationView를 사용할 일이 생겼다. BottomNavigationView를 사용하면 하단에 Tab이 있고, MainView에 Fragment가 들어가는데 Tab의 메뉴를 누르면 화면이 변경되어야 한다. 위에 이해를 돕기위해 내가 개발한 앱의 레이아웃 구조를 구현했다. FrameLayout 위에 BottomNavigationView , FrameLayout을 그리고 FrameLayout 위에 Fragment를 배치하도록 하였다. ( 기본적인 NavigationView 그리기다.. ) Menu1, Menu2, Menu3을 누르면 각각의 Fragment를 그려주는 기능이다. 잠깐 코드를 보자. bottomNavigationView.setOn..

Develop/Android 2019.11.21

Android 세로, 가로 고정하는 방법 , screenOrientation

안드로이드 앱 개발을 하면서 센서를 이용해 가로, 세로 화면을 보여주는 경우도 있고 가로, 세로로 고정하는 경우가 있다. protrait, landscape 안드로이드에서 세로뷰, 가로뷰가 존재하는데 각각 protrait, landscape로 칭한다. AndroidManifest.xml에서 설정하는 방법 이를 screenOrientation이라는 설정값으로 정의하여 제어하는데 방법은 아래와 같다. AndroidManifest.xml 이렇게 AndroidManifest.xml에서 설정하여 사용할 수 있다. portrait 값을 설정하면 세로, landscape로 설정하면 가로로 시작하고 센서로 인한 변경으로도 제어되지 않는다. JAVA 코드로 설정하는 방법 Manifest.xml에서 설정하면 아쉽게도 이벤..

Develop/Android 2019.11.19

안드로이드 http 통신 이슈 - Error : java.net.ConnectException: Failed to connect to

안드로이드 네트워크 통신을 할 때 기본적으로 매니페스트(manifest) 퍼미션(permission)을 설정해 준다. AndroidManifest.xml 이후에 http에 보안이슈가 확인되면서 https가 아닌 프로토콜에 대하여 기본적으로 동작하지 못하게 되었다. 이것은 설정을 통해 해결이 가능한데 아래 설정을 공유 하려고 한다. 설정 하는 방법 http를 가능하도록 설정하는 방법은 여러가지 방법이 있고, 이를 모두 공유하려고 한다. 1. usesCleartextTraffic="true"

Develop/Android 2019.11.14

최상단 레이아웃에서 발생하는 이벤트를 하위 레이아웃으로 전달 하는 것 막기!

제목 정하기 정말 힘드네..이번건..;; 개발을 하다 보면 이렇게 최상단에 Fragment를 띄워야 하는 상황이 발생한다. 제일 쉬운방법은 역시 Dialog를 만들어 띄우는 것이지만...( 지금 생각해보면 걍 Dialog로 띄울껄.. ) 나는 Fragment로 구현하였다. 동작은 '확인' 버튼을 클릭하면 그냥 저 Fragment가 없어지면 되는 아주 간단한 구조. 저 영역은 조금 더 디테일하게 표현하면 아래 그림과 같다 B라는 Activity위에 A라는 Fragment가 있는 건데, 배경이 검은색이어서 그렇지.. 지금 저 공지사항 Fragment는 전체 화면을 차지하고 있다. 공지사항 뒤에는 B Activity에 구현된 Button이 있는데 Fragment의 하얀 부분을 클릭해도 B Activity의 B..

Develop/Android 2019.11.13

androidx 호환 이슈 - Error msg : Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0]

기존에 구글플레이에 배포한 개인 앱에 material-design을 적용하려고 했다. 별 문제 없을 것이라고 생각했는데 아래와 같은 에러메세지가 괴롭혔다.. Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponent..

Develop/Android 2019.11.13

abstract, interface 그 차이와 사용법.. 그리고 사용하는 이유

abstract(추상) 잘 모르더라고 사용하는 단어의 뜻을 이해하면 대충 50%정도 감이 온다. abstract는 무슨 뜻을 가지고 있을까 abstract는 추상적인 이라는 뜻을 갖는 단어이다. 그렇다면 추상적이라는 의미는 무엇일까? ( 갑자기 국어 ) ???? 추상적 개념은 추상적인 것을 지칭하는 개념...이고...뭔소리야... 그래서 추상적이 뭐냐고.. 철학적으로 접근을 해봤다.... 음.. 어렵네요 추상적이라는 것을 빼고 추상을 검색해 보았다. 추상이란 구체에 대립하여 말하는 개념이며 전체의 한정된 것. 혹은 일부 나는 이렇게 추상이라는 것에 정의를 내렸다. 전체의 일부. 물론 추상이라는 단어자체의 뜻은 내가 내린 정의와 다를 수 있다. 하지만 내가 아래에 써 내려갈 글들은 JAVA의 추상적인 개념..

Develop/Android 2019.11.08

제네릭이란? 사용하는 이유는!!?

자바의 가장 상위 클래스는 Object 이다. 이 Object는 상위 클래스이기 때문에 어떠한 타입도 받을 수 있다. 단! 캐스팅이 필요하다. 아래는 간단한 예시이다. public class Obj { private Object object; public Object get(){ return object; } public void set(Object object){ this.object = object; } } public class Test { public class void main(String[] args){ Obj obj = new Obj; obj.set("뚠님"); String text = obj.get(); System.out.printf(text); } } Object 형태의 Obj 클래스를..

Develop/Android 2019.11.01

overloading, overriding을 알아보자.

오버로딩(overloading), 오버라이딩(overriding)?? 자바를 배운다면 아주 기초적인 내용이다. 하지만 현재 이직을 준비하고 있는 입장에서.. 다시 기본이 중요하다는 것을 느꼈고, 리마인드 차원에서 정리한다. ( 향후에 이걸 정리하게 된 썰을 풀 수 있다면... 풀어보겠다.. ㅋㅋ ) 기본적으로 자바의 다형성을 지원하는 방법이라고 말할 수 있겠다. 그리고 그 다형성을 제대로 표현해 줄 수 있는 방법이 오버로딩(overloading)이다. 간단하게 정의를 해보자. 오버로딩(overloading) : 같은 이름의 메소드를 갖지만 파라미터의 타입이나 개수가 다른 형태 오버라이딩(overriding) : 상위 클래스가 가지고 있는 메소드를 재정의 하는 형태 Overloading 예시 public ..

Develop/Android 2019.10.31

안드로이드 스튜디오 Resource 폴더를 관리해 보자! - Android File Grouping

안드로이드 스튜디오를 사용하면 항상 고민인 것이 있다. res 관리. java나 kt 코드는 디렉토리를 만들어서 보기 좋게 관리 할 수 있는데 res 폴더는 좀처럼 그룹핑이 되지 않는다. layout 과 fragment를 나누고 싶거나, 혹은 하나의 activity를 기준으로 거기에 들어가는 fragment를 모아서 사용하고 싶다거나 개발자의 마음대로 그룹핑을 하면 좋지 않을까 ? 그래서 이것 저것 알아 봤는데, 생각보다 어렵더라.. 어디 들어가서 폴더 만들고 막.. 사실 나는 실제 폴더구조를 만든다기 보단, 작업하기 편하게 안드로이드 스튜디오에서 그룹핑된 구조로 보여주길 원했다. 실제 파일들은 하나의 폴더에 들어가 있더라도 말이다. 이 고민으로 열심히 구글링 해서 여러가지를 찾았는데, 그중에 사용해보고..

Develop/Android 2019.10.21

Lottie를 사용해 보자!

새로운 개인 프로젝트를 만들고 있는데 알고만 있고 사용해 보지 못한 Lottie를 한번 써보면 어떨까?! 라는 생각이 들어서 SplashActivity에 사용하기로 하였다. Lottie 엄청나게 유명한 안드로이드 애니메이션 라이브러리다! 정확하게는... 안드로이드 뿐만 아니라 iOS, Window, Web 도 지원해주는 아주 좋은 라이브러리다. Lottie 안드로이드 github : https://github.com/airbnb/lottie-android airbnb/lottie-android Render After Effects animations natively on Android and iOS, Web, and React Native - airbnb/lottie-android github.com 설..

Develop/Android 2019.10.16
반응형