Android Study 111

현재 액티비티가 보여지고 있는것인지 확인하는 Activity 함수

단순한 Activitlifecycle 응용방법으로는 onPause( ) , onResume( ) 방법이 있다. 앱이 백그라운드 상태 일때 onPause( ) 가 호출되고, 다시 포그라운드 상태일때 onResume( ) 이 호출된다. 하지만 이는 액티비티가 종료되고, 다른 액티비티가 실행될때에도 실행되는 함수들이기 때문에 꼬이는 경우가 있을수도 있다. 그래서 찾아낸것은 onWindowFocusChanged( ) 함수이다. 백그라운드 상태를 체크한다기보단, 좀 더 정확하게 "(onWindowFocusChasnged( )를 가지고있는) Activity 가 최상단 인지 체크한다고 보면된다." 함수 그대로 지금의 윈도우가 Focus 되고있나 를 체크하는 함수이다. 코드는 아래와 같다. public class Ma..

Android Study 2019.12.18

WebView에서 파일 업로드(이미지) 버튼 이벤트 안될때

* 웹뷰에서의 작업환경은 어떤 상태인지 확인하지 못함 하이브리드 작업중 발생한 문제를 아래와 같이 해결하여서 기록함. ValueCallback mFilePathCallback; ...... //webview 안에 아래와 같이 chomeclient 셋팅 해주는 부분이 있을것임 아래와 같이 해줌 webView.setWebChromeClient(new WebChromeClient(){ @Override public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, FileChooserParams fileChooserParams) { mFilePathCallback = filePathCallback; Intent intent =..

Android Study 2019.12.13

Android notification 헤드업 Tip(channel 사용 버전만)

안드로이드 오레오 이상 버전부터는 channel 을 적용시켜야 push가 작동하는 이슈가 있다. 검색으로 푸시 셋팅을 해 놓으면 앱 내부에서는 헤드업 까지 모두 정상으로 동작된다. 하지만 앱 밖에서는 헤드업이 노출되지 않고, 내부코드로 컨트롤 할수 없다. 이때 안드로이드 에서 규정한 명령어를 서버에서 던져줌과 동시에 안드로이드에서 이를 처리하는 코드를 넣어야만 앱 밖에서도 헤드업을 노출 시킬수가 있다. (기본적인 중요도 높음에 대한 검색은 별도로 되있다 가정함) 서버에서 android_channel_id 라는 값을 내려준다. (! key 이름은 반드시 이와 같이 해야함) 앱 내부에서는 채널을(상위적용버전) 서버에서 내려주는 android_channel_id 값과 동일하게 설정해준다. ex) 서버 -> 안..

Android Study 2019.11.12

안드로이드의 디자인 적용 원리

내용이 좀 깁니다. .... 안드로이드는 크게 java 와 res(resource) 로 크게 나뉩니다. 아래의 설명과 같이 각각 주요 담당하는 역활이 있습니다. res 안의 구성은 기본적으로 아래와 같은 구조로 되어 있습니다. (실제 안드로이드 스튜디오 폴더 경로는 아래의 형태로 존재합니다.) " > " 는 하위 내용을 표시 " ( ) " 는 설명 res > drawable > menu.png (이미지를 가지고 있는 폴더) history.png drawable-hdpi > menu.png history.png (기타등등...) drawable-xhdpi (위와 동일함 생략/ 아래에 이유 설명) drawable-xxhdpi (위와 동일함 생략 / 아래에 이유 설명) drawable-xxxhdpi (위와 동..

Android Study 2019.05.09

구글 드라이브를 이용한 다국어관리 하기!

(string.xml 적용하여 다국어 사용하는 방법 링크) 보통 다국어 협업을 할때 필요한것은 두가지 이다. 하나는 번역해야하는 입장에서의 여러 국가의 번역을 할수있는 엑셀파일 , 하나는 키값이 있고 해당 키값에 있는 여러 국가의 번역본 엑셀파일 , 이 두 가지 조건만 맞으면 일단 다국어 정리가 한결 수월 해 진다. 그리고 협업을 위해서는 다국어 입력하는 파일(번역자전용) 1, 이 내용을 코드로 변환시키는 소스변환기능이 있어야한다. 별도의 엑셀파일을 만들어서 엑셀 함수를 이용하여 각 칸에 맞게 해당 언어의 내용을 입력하면 Android , IOS 다국어 string 파일에 맞게 변환되는 기능이 있어야한다. 이게 없으면 단순 복사 붙여넣기 작업만 하는데 많은 시간을 소요해야한다. 단순하게 정리된 엑셀 파일..

Android Study 2019.04.25

안드로이드 string.xml 을 사용 할 때 동적값 적용하기

이전에 말했던 안드로이드 string.xml 기본사용법 외에 간혹 유동적인 값을 string.xml 에 포함 시켜야 할 때가 있다. 그냥 클래스 단에서 작업하여 문자열을 하드 코딩으로 넣어도 되긴하지만, 만약 그 문자열이 다국어 에도 적용이 되야 한다면, 국가별로 하나하나 나눠서 작업을 해야 하기 때문에 시간과 코드 낭비가 심해지게 된다. 이때 기존의 string.xml 을 사용하면 다국어는 해결이 된다. 하지만 다국어에는 고정값이기 때문에 이 값을 변경 하려면 또 많은 코드를 넣어야 된다. 이때 좀 더 쉽게 적용하는 방법을 아래에 설명하겠다. 기본 사용법은 생략하고, Ex) tv_a 라는 TextView 에 상황에 따라 변경되는 값을 다국어로 하고싶다라고, 가정한다면 1. string key 값안에 유..

Android Study 2019.04.25

안드로이드 string.xml 기본 사용법 및 다국어 적용방법

안드로이드의 문구 작업 등을 할때(다국어 작업시 사용함) string.xml 을 이용하여 해당의 키값을 Java 단에서 지정하면 해당 키값에 문구를 가져와서 보여주는 방식이다. 실 사용은 아래와 같이 한다. Ex) tv_a 라는 viewId 에 "Give me the Money" 를 넣고 싶다. 라고 가정할때 1. 먼저 프로젝트 안에 src > main > res > values > strings.xml 파일안에 키값을 설정해준다.(없으면 똑같은 폴더명과 파일명으로 생성해준다) "Give me the Money" 위와같이 키값을 하나 만들어준다. 2. 작업할 클래스에 기본 세팅을 해준다. TextView tv_a = (TextView)findViewById(R.id.tv_a); 3. 위에서 만든 키값을 ..

Android Study 2019.04.25

안드로이드 앱 삭제는 확실하게!!

개발을 하다보면 앱을 설치하고 지우는 경우가 많다. 이때 보통 해당 아이콘을 누르고 있으면 조금마한 메뉴가 떠서 삭제 선택을 하거나, x 표시 아이콘이 뜨면 클릭해서 삭제하는 경우가 많다. 삼성폰의 경우 대부분 아무 문제 없이 앱이 정상 제거 되는 경우가 많지만 몇몇 LG 폰은 삭제되었다는 문구까지 뜨지만 앱 관리(디바이스 마다 다름)에서 확인해보면 앱은 남아있고 앱 사용중지 상태가 된다. 이때 다시 앱을 빌드 하거나, 다시 설치할 경우 앱중지로 설치가 되지 않거나, 아무 반응도 없고 에러도 없는 무반응 상태가 계속 되게 된다. 이럴때 간단하게 시도할 수 있는 방법은 앱관리자로 들어가서 앱을 제대로 제거하는 방법이다 . 물론 이것만으로 해결되지 않는 에러도 있을 수 있다. 하지만 나는 이러한 문제가 있을..

Android Study 2019.04.02

JSON 을 SharedPreference 에 저장하여 사용하기

안드로이드는 보통 서버와 통신할때 json 을 자주 사용한다. 가져온 데이터는 해당 디바이스에 저장하고 가져다 사용하기도 한다. 근데 SharedPreference 에서는 JSON 형식을 그대로 저장할수없고, 정해진 형식에 맞게 변환후 저장해서 사용해야한다. 예제 준비> 서버에서 데이터를 받아오는 클래스( 예로, Res_testData 라고 하겠음) public void setStringPreferences(Context mContext, String key, String value) { if (mContext == null) { mContext = getApplicationContext(); } SharedPreferences pref = mContext.getSharedPreferences(BaseC..

Android Study 2019.04.02

안드로이드 키보드 에 있는 다음,완료 버튼 작동 막기

Editext 사용시 키보드의 종류를 크게는 이메일 , 숫자 로 구분지어 띄울수있다. 이때 사용하는게 inputType 이다 - 숫자키보드 ... ... - 이메일형식키보드 ... ... 이때 키보드의 지동으로 다음 ,완료 버튼이 생기게 된다. 다음을 누르면 다음 EditText 로 이동하게 된다. 따로 지정할수도 있다. 그리고 다음 EditText 가 없으면 다음 버튼이 완료버튼으로 바뀌게 된다. 위와 같이 다음. 완료 버튼의 이벤트동작을 막고 싶다면 다음 버튼을 눌렀을때 지정할 수 있는 EditeText 의 id 값을 본인의 EditText 의 id 값을 지정하면 무반응 이벤트가 된다. 즉 안드로이드 키보드의 "다음" or "완료" 버튼에 무반응이벤트를 입히고 싶다면 아래와 같이 하면된다. [ JAV..

Android Study 2019.03.29