728x90

IT/Android 49

Android Studio 에서 Github로 소스 업로드 하기

Android Studio 에서 Github로 소스 업로드 하기 [IT/Android] - Android Studio 와 Github 연동하기 를 성공적으로 해냈다면, 실제로 프로젝트 생성 후 Repo 생성 및 업로드를 해봐야 한다. 아래의 스크린샷을 보면서 할 수 있다. VCS > Git > Commit File 을 누르면 좌측에 Commit 메뉴가 생기며, 변경된 내용이 Default Changelist 에 나오고 Commit 할 파일을 선택한다. 그리고 하단에 Commit 메세지를 적자. 그리고 Commit 버튼을 누르면 성공적으로 커밋이 된 것이며, 최종적으로는 Push를 해야 Repo에 파일들이 업로드 된다. Push 버튼을 누르면 성공적으로 Repo에 파일이 업로드 된다. Commit 만으로는..

IT/Android 2021.01.05

Android Studio 와 Github 연동하기

Android Studio 와 Github 연동하기 성공적으로 연동했다면, [IT/Android] - Android Studio 에서 Github로 소스 업로드 하기 로 가서 다음 작업을 해본다. 안드로이드 스튜디오 셋팅을 가서 Github를 검색하면 아래의 화면을 볼 수 있으며, Credential (이메일 + 비밀번호)로는 invalid authentication data 404 에러가 발생하며 로그인이 되지 않으니, token을 통한 로그인을 하도록 한다. Github token 발행 방법 Settings > Developer settings > Personal access tokens > Generate new token

IT/Android 2021.01.04

Odin 오류 대처 방법

삼성 휴대폰, 태블릿 등을 사용하다 보면 모험심이 강한 분들은 틀림없이 OS 버전 변경을 해보게 된다. OS 변경을 하기 위해서 필요한 툴이 바로 Odin 이다. OS 파일의 종류는 보통 tar, md5, combination 파일 등으로 나뉘고 있고, 각각의 파일마다 발생하는 오류가 다르다. "Re-Partition operation failed." 오류 발생 시, OS 파일의 확장자를 md5 에서 tar로 변경하여 Flashing 하도록 한다. "SHA256 is invalid" 오류 발생 시, 순정 Odin 이 아닌 수정된 Odin 을 사용해야 한다. https://technastic.com/odin-download-samsung-latest-all-versions/ 링크로 이동하여 Odin3 3...

IT/Android 2020.09.18

안드로이드 터치 이벤트 처리 과정(Android touch event)

안드로이드 터치 이벤트 처리 과정을 구글링 하다가 괜찮은 그림이 있어서 퍼왔다. 다음의 그림이 정리가 잘 되어있는 듯 하다. #출처 : https://www.it-swarm.dev/ko/java/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-onintercepttouchevent%EC%99%80-dispatchtouchevent%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/942188540/

IT/Android 2020.05.10

[Android] View에서 onTouchEvent 이벤트 ACTION_DOWN 만 나오는 문제

안드로이드 개발을 하다 보면 터치 이벤트를 상당히 잘 설계하고 사용해야 한다. 보통 View에서 내가 원하는 위젯을 상속받고 터치 이벤트만 커스텀하여 사용하는 경우도 종종 발생하는데, 그 중에서도 MotionEvent를 다루는 경우가 종종 발생한다. 그런데 막상 MotionEvent로 ACTION_UP / ACTION_DOWN / ACTION_MOVE 를 조절해서 사용해야 하는데, 아무리 이것 저것 건드려봐도 ACTION_DOWN만 넘어오는 경우가 발생한다. 이럴 경우 가장 쉽게 해볼 수 있는 방법은 해당 위젯의 clickable 속성을 true 해주는 경우다. 나의 경우는 ViewPager를 커스텀하여 개발을 진행하는데, 아무리 해도 onTouchEvent에서 ACTION_DOWN만 넘어오길래 한참을 ..

IT/Android 2020.05.04

Custom view [Classname] overrides onTouchEvent but not performClick 오류 처리

안드로이드 커스텀뷰 개발을 하다보면 한번쯤 아래와 같은 경고 메시지를 볼 수 있다. Custom view [Classname] overrides onTouchEvent but not performClick 직역을 해보면, 커스텀뷰 Classname 은 onTouchEvent를 오버라이드 했지만, performClick은 오버라이드하지 않았다. 정도로 해석해볼 수 있다. 이 말이 무엇인지 찾아보니, 커스텀뷰를 만들어 낼때 접근성(Accessibility)를 고려해야 하는데, performClick은 이런 접근성을 고려할 수 있도록 도와준다고 한다. Stack overflow를 찾아보면 다음과 같은 설명이 있다. View가 click이 감지 될 때 performClick을 구현하지 않고 호출하게 되면 Vie..

IT/Android 2020.04.27

[Kotlin] 메서드 인터페이스 객체 생성하기(Method Interface object)

안드로이드 개발을 코틀린을 진행하다 보면, 인터페이스 객체를 생성해야 사용해야 하는 경우가 종종 발생한다. 예를 들면, View 클래스의 OnClickListener 같은 것을 만들어서 버튼에 붙여야 한다거나, BottomNavationBar의 OnNavigationItemSelectedListener 를 만들어서 각 이벤트 처리를 하는 등등.. 여러 가지 경우에 아주 흔하게 사용되는 것들이다. 바로 본론을 들어가면 코틀린에서 object를 이용해서 인터페이스 객체를 생성해야 한다. 바로 아래와 같이 코딩이 될 수 있다. private val onNavigationItemSelectedListener = (object: BottomNavigationView.OnNavigationItemSelectedLi..

IT/Android 2019.09.02

[Android] FragmentPagerAdapter와 FragmentStatePagerAdapter 차이

Android 개발을 하다 보면 ViewPager를 사용할 필요가 종종 생겨난다. ViewPager를 사용할 때 Fragment와 함께 사용하는 경우가 대부분인데, 그럴 때 고민이 되는 것은 Adapter를 어떤 것을 연결해서 사용할 것인가? 이다. FragmentPagerAdapter 는 FragmentPagerAdapter와 FragmentStatePagerAdapter의 2가지로 나뉜다. 결론부터 말하면 FragmentPagerAdapter와 FragmentStatePagerAdapter 중에 고민이 된다면 FragmentStatePagerAdapter를 쓰세요. Google Android Developer 사이트를 찾아보면 사전적(?)인 의미는 아래와 같다. FragmentPagerAdapter ..

IT/Android 2019.08.27

[Kotlin] 코틀린에서 !! 연산자의 의미

코틀린 공식 홈페이지를 가보면 내용을 볼 수 있다. The !! Operator The third option is for NPE-lovers: the not-null assertion operator (!!) converts any value to a non-null type and throws an exception if the value is null. We can write b!!, and this will return a non-null value of b(e.g., a String in our example) or throw an NPE if b is null: ex) val l = b!!.length Thus, if you want an NPE, you can have it, but you ..

IT/Android 2019.08.16
728x90