플랫폼/안드로이드 android20 [Android] EditText 자동 포커스 제거 안드로이드에서 화면 액티비티가 뜰때, EditText에 자동으로 포커스가 가는 경우가 있다. (화면이 뜰때 뿐만아니라 브로드 캐스트 리턴 액션으로 화면이 리프레시 될 때, 자동으로 포커스가 가는 현상이 발생할 수 있다. ) 그럴때 간단한 해결방법이 있다. xml로 변경 아래와 같이 EditText를 감싸는 LinearLayout에 속성 android:focusable="true" android:focusableInTouchMode="true" 두 가지를 추가해준다. (터치를 해야 포커스가 되는 모드를 true로 설정해주는 모양이다.) 자바 소스로 변경 위의 xml에 추가 하는 방법도 있지만 자바 소스에서 LinearLayout을 선언해 소스로 추가 해줄 수도 있다. setFocusable(true); s.. 플랫폼/안드로이드 android 2020. 2. 13. Json 파싱 하기 [안드로이드/GSON] json 은 키-값으로 문자열을 구분하는 데이터 형식입니다. 예시: { "key1": "value1", "key2": "value2" } 참고로 [] 대괄호는 jsonArray로 파싱해줘야합니다. 1. Gson(라이브러리) 으로 파싱. (JsonObject) public String parse(String jsonLine) { JsonElement jelement = new JsonParser().parse(jsonLine); JsonObject jobject = jelement.getAsJsonObject(); jobject = jobject.getAsJsonObject("data"); JsonArray jarray = jobject.getAsJsonArray("translations"); jobjec.. 플랫폼/안드로이드 android 2019. 6. 13. 안드로이드 apk 생성 하기 APK파일은 안드로이드에서 앱을 설치하기 위한 설치 파일입니다. 안드로이드 플레이스토어에 apk파일을 올려주면 구글플레이가 업데이트, 설치를 관리 해줍니다. (최근에 apk를 대신할 appbundle이 나왔는데 apk의 비효율적인 부분을 보완한 방식입니다.) 이 apk를 안드로이드 스튜디오에서 만드는 방법을 설명하겠습니다. 1. Generate signed Bundle / APK를 열어줍니다. Next 클릭!. 2. key store에서 key를 만들어줍니다 참고로 .jks 파일을 잘 보관해주시고 key alias와 keypassword를 까먹으시면 안됩니다. 까먹으면 다시 세팅하기 복잡해진다고 하네요. 3. Next 클릭후 밑의 체크박스 V1,V2를 둘다 체크후, Bulid Variants 를 rele.. 플랫폼/안드로이드 android 2019. 6. 12. 안드로이드 생명주기 생명주기의 각각의 매서드들이 있다. 보통 액티비티 java클래스에서 onCreate onRestart 등 생명주기 매서드들을 오버라이드(@override) 해서 사용한다. 정말 간단한 예로, 사용자가 액티비티에서 글을 작성하고 있는 것을 안전하게 저장해주고 싶다면, onPause에 SaveData 메서드를 넣어주면 될것이다. 만약 onStop이나 onDestroy에 SaveData 메서드를 넣는다면, 메모리가 부족해 안드로이드 시스템이 사용하던 앱을 강제 종료시켰을 때, SaveData가 호출 안될것이다. @Override protected void onPause() { super.onPause(); SaveData(); //참고로 SaveData는 개인적으로 만들어준 메소드. } 각각의 생명주기 특성을.. 플랫폼/안드로이드 android 2019. 6. 12. 안드로이드 앱 실행 구조 (apk 와 패키지) 윈도우에서 .exe 실행파일 처럼, 안드로이드에서도 앱의 실행파일이 있는지 궁금했다. 결론적으로는 안드로이드는 실행파일이 없다. 안드로이드 시스템안에 서비스 매니저가 등록된 앱들중.. 패키지안에 메인함수를 호출하며 실행되는 구조다. 참고로 앱을 배포할수 있는 apk는 압축파일이고, 이 apk로 안드로이드에서 설치할 수 있다. apk가 설치되면 안드로이드에서 개발했던 도메인 이름의 패키지가 생긴다. 안드로이드 시스템에서는 그 패키지로 앱을 관리하는 것이다. 더 자세히 보고 싶다면. 참고 안드로이드 앱실행 구조 https://sanseolab.tistory.com/32 apk 파일 구조, 달빅 ART 방식 차이 https://en.wikipedia.org/wiki/Android_Runtime#/media/F.. 플랫폼/안드로이드 android 2019. 6. 12. 안드로이드 unescape /escape [StringEscapeUtils로 해결] 웹서버 iis (wcf 서버)와 안드로이드가 통신하는 앱을 만들고 있다. 근데 json이 이상한 데이터 형식으로 넘어오는 것이었다. 큰따옴표가 붙어서 왔다. ({\"Table\":[{\"Column1\":\"OK\"}],\"Table1\":...) 이런식 찾아보니 iis에서 json값을 줄때, "따옴표를 \" 이런식으로 값을 줬다. 데이터 형식을 이스케이프(escape)로 준거였다. [참고] 이스케이프 설명 escape - 생활코딩 요약(Summary) URI로 데이터를 전달하기 위해서 문자열을 인코딩 문법(Syntax) escape(string) 인자(Parameters) 인자명 데이터형 필수/옵션 설명 string string 필수 인코딩할 문자열 반환값(Return) string, 인코딩된 문자열을.. 플랫폼/안드로이드 android 2019. 6. 5. 안드로이드 arrayList 를 Json으로 변환 / jsonarry ArrayList를 Json으로 출력하는 법. JSONArray test = new JSONArray(); for(int i=0; i< mArrayList.size();i++){ JSONObject otest = new JSONObject(); otest.put("barcode",mArrayList.get(i).getBarcode()); otest.put(String.valueOf(i),mArrayList.get(i).getQuantity()); test.put(otest); } Log.d("array", String.valueOf(mArrayList)); Log.d("array", "json"+ test.toString()); JsonArray 객체(test)를 생성한 후 반복문을 사용하여 JsonOb.. 플랫폼/안드로이드 android 2019. 5. 22. [안드로이드] 클릭 리스너 (2가지) 클릭 이벤트 리스너 (Click Listener/Android) 클릭 이벤트 리스너를 사용하는 2가지 방법을 다뤄 보겠다. 1. setonClickListener 사용 1 2 3 4 5 6 7 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 작동 코드. } }); Colored by Color Scripter cs --> onCreate에 바로 사용하여 쓸 수 있어 편하다. * 설명 - 1. (버튼 객체에 onclick 리스너를 세팅하여 사용하는 방식이다. 새로운 view에 onclick리스너를 호출하여 onClick 메소드를 오버라이딩 한다.) - 2. '// 작동 코드' 라고.. 플랫폼/안드로이드 android 2018. 12. 27. 이전 1 2 다음