목록Android (51)
NOW OR NEVER

Fragment에서 toolbar 뒤로 가기 버튼 구현 목표 : toolbar 왼쪽에 뒤로가기 아이콘을 배치 문제 : toolbar에 메뉴아이콘을 사용해서 적용시키면 오른쪽으로만 배치 시도 방법 1: tool bar 객체를 actionbar로 만들어서 왼쪽에 뒤로 가기 버튼을 만들기 실패 이유 : setSupportActionBar 메서드로 toolbar를 actionbar로 대체 하여 setDisplayHomeAsUpEnabled(true)을 이용하여 네비게이션 버튼을 배치하려 했으나 기존 메뉴(res 내 메뉴 파일로 만든 메뉴)인 저장버튼이 같이 뜨지 않는 현상이 계속해서 발생하여 실패하였다. 원인을 찾아 본 결과 해당 메서드를 쓴 분들의 코드는 fragment를 사용하지 않고 activity를 이용..
AndroidX 패키지가 작동하지 않는 오류 갑자기 androidx 관련 패키지를 쓰고 있는 모든 파일들이 오류가 떠서 해결법을 찾아봤다. 해결법 아래 두 줄을 gradle.properties에 추가해주고 sync now를 해준다. 나의 경우 useAndroidX는 있었으나 enableJetifier은 없어 생긴 문제인 거 같다. android.useAndroidX=true android.enableJetifier=true
Resource res 내 폴더들은 반드시 구글에서 무슨 용도로 사용하는 지 정해져 있는 폴더들(폴더 이름이 다 지정되어 있다)이다. 안드로이드 os에서 용도가 정해져 있지 않은 파일들(폰트,음악, 영상, 텍스트 등)을 프로젝트에 넣어 사용할 경우 그 파일들을 넣어두는 곳이 raw와 assets에 넣어둔다 raw 가공되지 않은 원천 데이터 각종 데이터 파일이나 동영상, 사운드 등 담는 폴더 다양한 파일들을 포함시킬 수 있지만 개수가 적은 것들만 담을 수 있다. 장단점 장점 : stream을 추출하는 코드를 작성하는 것이 쉽다 단점 : 하위 폴더를 만들 수 없다. raw 파일과 연결된 stream 추출 방법 val inputStream = resources.openRawResource(R.raw.data)..
File I/O download folder를 쓰는 것이 원칙 기존에는 코드를 통해서 특정 파일 경로 얻어오는 것이 가능했으나 안드로이드 10 부터는 불가능하게 됨 저장 방법 메모리 : 애플리케이션이 실행 중에만 사용하는 경우 단말기내부 : 애플리케이션이 종료되고 다시 실행되었을 때도 사용하는 경우(데이터가 유실 가능) 서버 : 애플리케이션이 종료되고 다시 실행되었을 때도 사용하는 경우 (데이터 유실 x) or 다른 단말기에서도 사용하는 경우 stream은 제일 마지막 애만 닫아도 다 닫힌다. MimeType : 파일에 저장되어 있는 데이터의 양식이 무엇인지를 타나내는 문자열(https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types..
안드로이드 스튜디오 Mac 클릭 및 커서 Error 다른 곳으로 커서를 옮기려고 하면 원래 있던 커서 위치서부터 커서를 옮기려는 위치까지 드래그가 되는 경우 다른 파일이 클릭이 안되는 문제 -> 원인을 파악하진 못했으나 한/영 변환 키를 누르면 다시 클릭이 잘되고 커서가 잘 옮겨진다. 후에 다른 방법을 찾거나 원인을 찾게 된다면 글을 추가해야겠다.
drawer Layeout new project - navigation drawer views activity 기본 기능이 만들어져 있음 res - navigation - mobile navigation : 이동하는 화면 레이아웃 디자인 res 폴더 관리 시 비슷한 계열로 하위 폴더로 만들어서 관리하는 것이 안된다. 파일 구성 activity_main.xml activity_main.xml은 include와 NaviationView로 구성 include는 layout/app_bar_main.xml 파일이 설정 NavigationView는 좌측에서 메뉴가 나타날 수 있도록 해주는 View NavigationView의 headerLayout은 layout/nav_header_main.xml이 설정되어 있고 ..
Action Bar 기본적인 사용에서는 액션 바를 쓰는 것이 편할 수 있음 fragment에서 액션바를 설정해서 쓰면 복잡해짐 action bar 안나오게 하는 설정 false true 뒤로 가기 버튼 배치 가능 Action View search view 임포트 시 androidx 패키지로 임포트 // ActionView가 펼쳐지거나 접혔을 때 // true를 반환하면 접혀지고 false를 반환하면 접혀지지 않는다. item1.setOnActionExpandListener(object : MenuItem.OnActionExpandListener{ // 펼쳐 졌을 때 override fun onMenuItemActionExpand(p0: MenuItem): Boolean { activityMainBindi..
Emulator 문제 emulator이름 is already running. If that is not the case, delete emulator폴더주소/*.lock and try again. emulator가 이미 돌아가고 있는 문제가 발생 찾아보니 lock 확장 파일들이 캐시로 남아있어서 생기는 문제로 파악됨 emulator폴더 주소로 들어가서 .lock 확장자를 가진 폴더 및 파일들 삭제 후 안드로이드 스튜디오 리부트 후 해결됨 맥의 경우 rm /Users/soyun/.android/avd/emulator이름.avd/*.lock로 해당 확장자 가진 파일 일괄 삭제 가능 계속해서 emulator가 이 방법을 사용해도 꺼지지 않는다면 활성 상태 보기로 들어가서 강제 종료해주는 방법만 아직 찾아냄,..
Thread 동시 처리는 동기처리이고 순차적으로 처리는 비동기처리라고 한다, thread는 동기처리이다 네트워크는 오류가 발생할 가능성이 매우 높기 때문에 돌발상황이 있을 수 있다. 그래서 해당 부분은 실행에 대한 안정성을 확보 하기 위해 해당 부분은 thread로 관리 한다. 예외는 예측이 가능한 오류 main thread는 안드로이드 OS에 의해 관리 kotlin에서는 runOnUiThread(화면 관리 요소 처리) 별도 작성 필요 없이 main thread로 구현 가능 하다 개발자가 만드는 thread는 누적 thread이다. Fragment new- fragment - fragment(blank) 화면이 여러 개 일때 fragment가 필요하다 여러 화면을 가지고 있는 애플리케이션은 여러 Acti..
Android Message Notification 상단바를 내렸을 때 알림창에 뜨는 메세지 사용자가 메세지를 확인 할 때까지 존재하는 메세지 메세지 터치 시 어플리케이션 실행 가능 사용자로 하여금 지속적으로 어플리케이션 사용 유도에 용이 프로젝트 만든 후 emulator에서 실행 시 알림 허용 하고 테스트 해보기 addNotification 메서드 // Notification Channel을 등록하는 메서드 // 첫 번째 : 코드에서 채널을 관리하기 위한 이름 // 두 번째 : 사용자에게 노출 시킬 이름 fun addNotificationChannel(id:String, name:String){ // 안드로이드 8.0 이상일 때만 동작하게 한다. if(Build.VERSION.SDK_INT >= Bui..