Android Study 111

입력값을 Filter 와 Match 를 이용하여 Pattern 체크하기

본인은 안드로이드에서 입력값을 필터로 걸러서 제한하는 경우가 있을때 Filter 또는 Matcher 사용한다.이 기능을 조금 더 사용하기 쉽게 만들어놓은 코드가 있어서 적어본다.(종류별 패턴은 JAVA Study 에 몰아 넣겠다.) - 상황 :EditText et_input = findviewById(R.id.et_input);et_input 에 이메일만 받고, 글자수는 최대 30자를 넘기게 하고싶지않다. 라고 가정한다면 - 방법 :1. 먼저 필터를 쉽게 사용하기 위해 별도의 함수를 만든다.2. 위의 함수를 입력창에 직접세팅 or 판단하는 함수를 이용해 판단후 처리한다. - 코드 : 1. edt1 에는 Filter 를 이용해 숫자와 알파벳만 입력받게 2. edt 에는 Match 를 이용해 이메일 형식인지..

Android Study 2019.01.31

갤럭시 S9 디바이스 PC 연결이슈

작업 하던 도중. 요즘 최신폰 갤럭시 S9 에 대한 이슈들로 PC 연결을 시도할 일이생김 (PC는 맥북 , 마이크로핀 에 C TYPE 을 연결해서 사용하고있었음)기본적으로 usb 드라이버가 설치되어있다던지, Samsung switch 설치 등은 완료가 되어있는 상태이다.평소와 같이 젠더를 연결하여 S9 연결을 시도했으나 충전만 되고, pc 연결이 되지 않는 상황 발생! 다른폰과 pc 연결 시도 모두 성공 ,but! 갤럭시 S9 만 되지 않음 수많은 시도 끝에 찾은 해결방법! .... 젠더 말고 C type 연결선 사용시 바로 연결됨! 정확한 이유는 모르겠음;; - 끝 -

Android Study 2019.01.30

Error : android.view.WindowManager$BadTokenException

상황 : 문제상황 기록을 체크하던중 아래와 같은 에러발생함 Fatal Exception: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@3e06ac3 is not valid; is your activity running? 위의 에러를 확인후 구글링 해서 찾고, 이해한 내용을 적겠다. 나는 아래와 같은 코드를 사용한다. mActivity = 상속받은 클래스 에서 사용하는 activity 이다.CommonDialog.show(mAcivity, "", "ServerBusy", "ok", null, new IDialogOnClickListener() { @Override public..

Android Study 2019.01.25

안드로이드 DB를 이용한 Library > Paper

NoSQL(별도로 찾아봐야할 부분인듯) 이란 안드로이드 디바이스 내에 사용되어지는 DB를 이용하여 손쉽게 저장하고 빼서 쓸수있게 만든 라이브러리를 알게 되서 정리해보았다. - 라이브러리 implementation 'io.paperdb:paperdb:2.6 - import import io.paperdb.Paper; - 사용법initialize : Paper.init(context); saveData : Paper.boo().write("key",value);readData : List - Paper.book().read("key");delete : Paper.book().delete("key");destory : Paper.book().destroy(); // 현재 저장되어있는 모든 key에 대한 제거 ..

Android Study 2019.01.22

카운터 타이머 클래스로 사용하기

실제 사용할때 카운터 타이머를 사용하는 경우가 많다. 보통 03:00 식의 숫자를 어느 특정 Textview 에 표시하게끔 하는 방식이 많다.그때마다 찾아서 만들다가 별도로 만들어놓고 가져다 사용하기 편하게 만들어 보았다. import ......클래스에 맞게 알아서public class TimerUtil { int count_minute;// 분 int count_second;// 초 TextView tv_count;// 숫자 보여줄 textView id int second;//최초의 초 를 가지고있기위한변수(반복사용때문에) Boolean isStarting = false;// 카운 진행중인지 체크 Timer mTimer = new Timer(); public TimerUtil(int count_min..

Android Study 2019.01.22

아주 기초적?이지만 깜박했던 실수!

ex_1) if(account.getReal_name_status()!=null&&account.getReal_name_status().length()>0){ } ex_2) if(account.getReal_name_status().length()>0&&account.getReal_name_status()!=null){ } ex_1코드와 ex_2코드는 체크하는 순서만 순서만 바뀐것 뿐인데 전혀 다른 결과값을 나타낸다. 위의 코드는 문제없이 잘 돌아가고 , 아래의 코드는 앱이 죽어버린다. 위의 코드는 null값일때 null 을 먼저 체크해서 문제가 되지 않는다, 하지만 아래의 코드처럼 길이를 재려고 하는데 , 값이 null 이다 이렇게 되면 앱이 죽어버린다. 항상 null 체크를 앞에사용하자! 거의 입문할..

Android Study 2019.01.13

새로운 코드에 대한 분석Tip(주관적)

클래스의 시작과 끝을 먼저 찾는다. 끝부터 역순으로 분석한다. 시작 함수 찾으면 중요 메소드는 다 찾은것이기 때문에 분석끝 큰 메소드 중심으로 디테일하게 분석하면 클래스 하나는 빠르게 분석 가능하게 된다. 분석할때 깊게가지 말고 큼직큼직하게 뭔지 알고 넘어가는게 중요함 코드에 대한 분석은 최초 흐름을 먼저 파악하는게 중요하다고 생각함.아직 위의 방법이 익숙하지 않아서자꾸 디테일하게 빠지기 쉽다. 이부분에 주의하면서 코드 분석을 위와같이 시도해보자! -끝-

Android Study 2019.01.07

안드로이드 스튜디오 안에서 SHA-1 인증서 지문 가져오기

[ 방법-1 ] 해당 프로젝트를 실행한다 우측에 Gradle 메뉴를 누른다 창이 뜨면 프로젝트명 을 누른다 Tasks 누른다 Android 누른다 signingRepot 누른다 우측 하단에 보면 Gradle Console 이 있다. 누른다 콘솔에 sha1 키가 보인다 가져오면된다. 끝 [ 방법-2 ] 1. 우측 (코끼리모양) Excute Gradle Task 클릭 2. 명령어 gradle signingreport 입력후 엔터 3. 관련 SHA-1 내용확인 하면 된다 . 끝

Android Study 2019.01.07

안드로이드 string.xml 파일에서 특수문자 사용하기

다국어 처리를 하는경우에 국가별 string.xml 파일을 별도 생성해서 사용하는 경우가 있다.ex_1) It's Good 위와 같이 ‘ 가 있는 키값에는 에러가 표시된다. 이때 사용가능하게 처리하는 방법은 두가지(내가아는한) 있다. 1. 문구앞뒤에 " "를 사용해서 모든 문자가 허용가능하게 만들어주기- 장점 : 한번에 문장내에 모든것을 싸잡을 수 있기 때문에 때에따라 편리할 수 있다.- 단점 : 키값이 많은데 특수문자가도 많을 경우 하나하나하나 다 " " 로 싸잡아 줘야 하는 번거로움이 있다. 2. 특수문구 자체를 적용가능한 문구로 직접 변경해주기- 장점 : 안드로이드 스튜디오에서 ctrl + R (전체 찾아 바꾸기 기능)을 이용해서 원하는 문구를 한번에 바꿀 수 있다.- 단점 : (위의 기능을 사용하..

Android Study 2019.01.03

해당 디바이스에 설치된 app 패키지명 알아내기

디바이스에 설치된 앱 아이콘 , 앱 이름 , 앱 패키지명 을 리스트화 시켜 한번에 볼수있는(설정가면 앱은 볼수있지만 패키지명을 볼수없다.굳이 필요없긴 하지만)리스트를 만드는 코드는 아래와같다. PackageManager pm = this.getPackageManager(); List list = pm.getInstalledApplications(0); for(ApplicationInfo applicationInfo : list){ String name = String.valueOf(applicationInfo.loadLabel(pm)); //앱이름 String pName = applicationInfo.packageName; //앱 패키지 Drawable iconDrawalbe = applicationI..

Android Study 2019.01.03