안드로이드스튜디오 21

[말하는 알람] 시간별/요일별로 원하는 문구를 정확하게 말해 드립니다. 물, 정각, 약, 일정, 명언, 스트레칭, 간격, 반복 알림 -

시간이 흘러간다는 것은 아시나요? 시간의 흐름과 함께 가고 계신건 아시나요?시간의 흐름 속에서 세월의 흐름을 잊고 계신건 아시나요? 이제 당신의 시간을 되찾아 와보세요. 시간을 세상에 맡겨두지 마시고, 이젠 항상 곁에 두세요. 소중한 나의 인생의 흐름을 느껴보세요.시간과 함께 호흡하며 살아 보세요.가을 하늘 높아지는 낭만과 함께...구글플레이에서 무료로 다운로드 받기 정말 사용하기 쉽습니다. 앱 전원을 켜기만 하면 매일 오전 8시부터 오후 10시까지 정각에 알림음과 함께 시간을 음성으로 알려드립니다!(아무 설정을 하지 않아도 말 해드리니 걱정 마세요! 전혀 어렵지 않아요!) 우측의 동그란 플레이 버튼을 누르면 언제든지 미리 들어 볼 수 있습니다! 내가 직접 만든 문구를 매 시간 정각에 (알람: 음성, 벨..

[말하는 알람] 물, 정각, 일정, 명언, 스트레칭, 간격, 반복 알림 -원하는 문구를 마음대로 편집하세요! 시간별/요일별로 정확하게 말해 드립니다.

시간이 흘러간다는 것은 아시나요? 시간의 흐름과 함께 가고 계신건 아시나요?시간의 흐름 속에서 세월의 흐름을 잊고 계신건 아시나요? 이제 당신의 시간을 되찾아 와보세요. 시간을 세상에 맡겨두지 마시고, 이젠 항상 곁에 두세요. 소중한 나의 인생의 흐름을 느껴보세요.시간과 함께 호흡하며 살아 보세요.가을 하늘 높아지는 낭만과 함께...구글플레이에서 무료로 다운로드 받기 정말 사용하기 쉽습니다. 앱 전원을 켜기만 하면 매일 오전 8시부터 오후 10시까지 정각에 알림음과 함께 시간을 음성으로 알려드립니다!(아무 설정을 하지 않아도 말 해드리니 걱정 마세요! 전혀 어렵지 않아요!) 우측의 동그란 플레이 버튼을 누르면 언제든지 미리 들어 볼 수 있습니다! 내가 직접 만든 문구를 매 시간 정각에 (알람: 음성, 벨..

[안드로이드] AsyncTask를 연속으로 사용할 때 문제점

asyncTask를 연속으로 사용할 때 어떤 문제점이 발생 할까? 1. 만약, 1개의 비동기 태스크를 사용한다고 가정 하자.2. 비동기 태스크가 사용자에 의해 계속 호출 된다고 하자.3. 비동기 태스크는 할 일을 다하고 onPost에서 마지막 할일을 마쳐 준다.4. 무슨 문제가 있나? 5. 원래 비동기 태스크의 결과는 항상 onPost에서 얻어오기를 희망 한다. 6. 하지만... 연속으로 비동기태스크를 돌리게 되면 섞이는 경우가 발생한다.7. A가 처음 태스크, B를 두 번째 태스크라고 하자.8. A가 돌고 있는데 B를 실행 했다. 9. A의 onPost가 실행되고 A는 마무리 짓는다. 이것이 정상이다. 하지만10. B가 실행되면서 A의 onPost 이전에 실행 된다. 즉, 끼어든다.11. 하지만.. A..

[안드로이드] EditText 여러개 포커스, 커서 변경

안드로이드 EditText가 여러개 있거나, 다른 곳으로 포커스를 옮겨야 할 경우가 있다. 어떻게 해야 할까? 1. 현재 에디트텍스트의 커서를 지운다.setCursorVisible(false) 2. 다른 에디트텍스트나 아이템에 커서를 살린다. setCursorVisible(true) 3. 죽이고, 살리면 살아난 애는 깜빡일까? 그냥 자고 있다. 포커스를 요청 해야 한다. 4. 포커스 좀 주세요... mEditText.requestFocus(); 이러면 끝났나? 그럼 혼난다. 1. 왠만하면 setCursorVisible(false)를 쓰지 마라. 2. 다시 살려야 하고 복잡해진다. 3. 그리고 setForcusable, setForcusableInTouchMode 는 기본으로 True 4. editable..

[안드로이드] EditText 맨 뒤에 커서 위치 시키기 -java.lang.indexoutofboundsexception setspan ends beyond length

안드로이드 에디트 텍스트의 맨 뒤에 커서를 위치 시키는 방법을 알아 보자. 이게 기본이 아니라는 것이 그렇지만... 공부 하라는 선생님의 말씀이라는 것 같아서... 숙제를 해본다. 1. 길이의 맨 뒤에 붙여 보자 editText.setSelection(editText.length()); 2. 선생님을 만나라java.lang.indexoutofboundsexception setspan ends beyond length 3. 선생님의 충고를 들어라. Editable editable = mFrontEditText.getText(); Selection.setSelection(editable, editable.length()); 4. 짐싸라. 5. 하산 하라. 6. 뒤통수 맞고 다시 책상에 앉아라.

안드로이드 error activity class does not exist

안드로이드에서 액티비티를 매니패스트에 추가를 해줬지만 아래와 같은 에러가 나는 경우가 있다. error activity class does not exist 액티비티는 분명히 존재 한다. 파일도 존재 한다. 패키지명도 올바르다. 도데체 뭐가 문제인가? 이럴때 시도 해볼 수 있는 방법 1. Clean Android Studio Project2. 빌드 디렉토리 지우기.3. 안드로이드 스튜디오 재 시작4. 리빌드/실행 안드로이드 스튜디오가 꼬이는 경우 재시작만 해도 되는 경우가 있다. 하지만, 이래도 안된다면? 철자를 잘 살펴 보라! 분명 오타가 있을 지다. 만약 액티비티가 com.comostudio.a.b.activty 인데 android:name="b.activity"라고 적으면? 문제가 없어 보인다? 점..

AsyncTask를 전역으로 쓰면?

안드로이드 AsyncTask를 전역으로 쓴다면? 즉, 재활용 하겠다는 의미인데 가능 할까? 불가능하다! 만약 한 번 쓴 비동기 태스크를 재 활용 하려고 하면 아래문구를 보게 될 것이다. java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once) 즉, 변수 이름은 재활용이 가능 하지만 다시 쓰려면 새로 할당을 받으라는 것이다. 당연한 것 아니겠나? 얼음 얼리는 통을 사서 물을 채우고 얼음을 얼려서 먹었는데, 다음 번에 얼음을 먹으려면 당연히 물을 다시 부어서 넣고 기다려야 먹을 수 있지 않겠는가? 그 당시 얼음 통과 얼음은 그 당시의 내 위장 속..

안드로이드 preference persisit 의 비밀 한가지

preference에서 getPersistedString 으로 저장된 값을 가져오고 있었는데 이 값을 String에서 Int로 바꾸었다. 그리고 이젠 getPersistedInt 요렇게 값을 가져 오도록 한 뒤 실행을 했더니... 저승사자가 또 와버렸다. 안드로이드 초보인 코모에겐 아직도 까만 화면의 팝업이 너무 두렵다. 그리고 희한 하게도 이상한 에러로 죽으니 참으로 입이 타들어 간다. Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 분명 int로 바꾸면서 int 변수에 넣어 줬는데 도데체 이게 무슨 귀신이 신나서? 까까불어 먹고 있는 소리인가... int a - getPersiste..

시간의 흐름과 함께 호흡하는 낭만앱 -v1.1.2

시간이 흘러간다는 것은 아시나요? 시간의 흐름과 함께 가고 계신건 아시나요?시간의 흐름 속에서 세월의 흐름을 잊고 계신건 아시나요? 이제 당신의 시간을 되찾아 와보세요. 시간을 세상에 맡겨두지 마시고, 이젠 항상 곁에 두세요. 소중한 나의 인생의 흐름을 느껴보세요.시간과 함께 호흡하며 살아 보세요.가을 하늘 높아지는 낭만과 함께... 현재 시간 앞/뒤로 듣고 싶은 그리고 말하고 싶은 문장을 만들어 보세요. (명언, 좌우명, 속담, 암기, 공부, 일정, 메모, 상큼하고 활기찬 문구등으로 만들수 있습니다.) 매 시간 정각이 되면 시간과 함께 읽어 드립니다. 오늘 1.1.2 버전으로 업데이트 되었습니다. (새로운 기능은요 ?) 1. 남여 성우 변경 가능, 읽어주는 속도 변경, 언어 변경(영어 공부하세요), 말..