본문 바로가기

안드로이드 앱 프로그래밍

[안드로이드] 알람매니져 구현 안드로이드의 알람 매니져 관련 글을 찾던중 시원한 곳을 벅벅 긁어주는 글을 만났다. 1. 안드로이드의 알람은 매우 불안정해서 구글 캘린더 같은 앱도 앱이 켜질때 마다 알람을 재설정 해 준다. 2. 안드로이드 요일반복 구현은, 알람매니져로 한번 울리는 알람을 등록 해 준 후에, 해당 알람이 울리면 다시 알람을 등록하는 구현 방법이 있다. 3. 여러개의 알람을 관리 할 때는, 알람을 생성 할 때, pendingIntent를 구현하게 되는데, 이때 두번째 인자값으로 넣는 requestCode를 통해서 알람을 구분하게 된다. 잘 저장해 두었다가, 이걸 통해서 삭제하면 된다. 4. 디바이스가 재부팅되면 알람들이 다 사라지게 되는데, 이런 상황을 대비하여 boot시 알람을 재설정 하는 클래스를 따로 구현해야 한다... 더보기
[안드로이드] 액티비티간 데이터 주고 받기 액티비티간 데이터 주고받기 관련 글을 찾아보던중, 이해하기 좋은 글을 발견하여 공유합니다. http://m.blog.naver.com/eominsuk55/220228053631 더보기
[안드로이드] 액티비티가 아닌 클래스에서 startActivityForResult 사용하기 앱을 개발하던 중, ListView의 한 아이템에서 결과값을 받아서 이전 액티비티로 전달을 해 주어야 하는 경우가 발생하였다. 이런 경우, 돌아갈 액티비티의 컨텍스트를 빌려서 사용하면 해당 아이템의 역할이 끝난 후, 돌아갈 액티비티로 결과값을 보낼수 있다. ((MainActivity)mContext).startActivityForResult(new Intent(),0); 위의 코드에서는 MainActivity의 context를 빌려서 다른 액티비티를 실행 하였고, 다른 액티비티가 끝나면, 결과값을 MainActivity로 보내게 된다. 더보기
[안드로이드] 키패드 강제로 올리기/내리기 액티비티가 처음 실행되었을 경우, 또는 어떤 항목을 검색하고나서 키패드로 내릴 때에는 InputMethodManager로 키패드를 컨트롤 할 수 있다. EditText mTitle = (EditText)findViewById(R.id.etTitle);//기능상 키보드가 사라짐과 연관있는 view를 사용하면 된다. InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); //키보드를 띄운다. inputMethodManager.showSoftInput(mTitle, 0); //키보드를 없앤다. inputMethodManager.hideSoftInputFromWindow(mTitle.get.. 더보기
[안드로이드] ListView 클릭이 안될때 잘되던 ListView가 버튼을 추가하니 클릭이 되질 않았다. 이유는 ListVIew의 item에 Button이 들어가면 Layout상에만 넣어두더라도 ListView는 통채로 클릭이 안된다. 이때는 Button을 code상에서 정의해주고 ListView는 mainActivity에서, Button은 각각의 ItemView상에서 둘 다 view.setFocusable(false); 를 해주면 정상적으로 클릭된다. ListView말고도 Button에도 해주어야 하는 사실을 잊지말자. 출처: http://devbible.tistory.com/9 [devbible] 더보기
[안드로이드] Thread Handler 사용하기 안드로이드에서는 백그라운드에서 돌아야 하는 기능을 만드는 방식을 두가지로 나눠 볼 수 있다. 1. 서비스 : 백그라운드 작업은 서비스로 실행하고, 사용자에게는 알림 서비스를 이용해 알려줍니다. 만약 메인 액티비티로 결과값을 전달하고 이를 이용해 다른 작업을 수행하고자 한다면 브로드캐스팅을 이용해 결과값을 전달 할 수 2. 스레드 : 스레드는 동일 프로세스 상에 있기 때문에 작업 수행 결과를 바로 처리할 수 있습니다. 그러나 UI 객체는 직접 접근 할 수 없으므로 핸들러 객체를 사용합니다. 그렇다면, 스레드의 핸들러는 무엇인가? 우리가 만든 어플을 실행 시키게 되면, 어플을 위한 프로세스가 생성됩니다. 그리고 프로세스가 생성되면 메인스레드는 새로 만들어지는 윈도우를 위한( 액티비티, 브로드캐스트 수신자 등.. 더보기
[Android] EditText 글자 밑줄 지우기 및 검은 테두리 효과 적용하기 Do it! 안드로이드의 연습문제인 SMS 입력화면 만들고 글자수 표시하기 를 하고있는데요, 글자를 입력할때 밑줄이 생기는 원치않는 상황이 발생 했습니다. 맨 처음엔 "안드로이드 edittext 밑줄제거" 라고 검색을 했지만 이건 글자밑에 밑줄이 아니라 editText 자체의 밑줄을 제거하는 글이었고, 그래서 다시 "안드로이드 edittext 글자밑줄제거" 라고 검색해서 찾아 냈습니다. 여기서 inputType부분을 위의 사진과 같이 바꿔주시면 글자밑에 생기는 밑줄을 제거 할 수 있습니다. 또한, edittext 테두리에 검은 선을 넣는 효과는 drawable 폴더에 아무이름이나 xml파일을 만들고, 위와 같이 타이핑 후 저장해 주고, 바로 이전 사진에서과 같이 android:background="@dr.. 더보기
[Android] 여러개의 버튼을 추가 해보고, 기능을 추가 하기 이 글에서는 이 전글에서 간단하게 Hello World 를 출력 해본것에서 더 나아가서, 버튼을 두개 추가하고,기능을 두개 추가 할 것 입니다. 1. 한 버튼에는 네이버로 접속하는 기능 2. 다른 버튼에는 버튼을 누르면 지정된 전화번호로 전화를 걸게 도와주는 기능 을 부여 할 것 입니다. 먼저, activity_main.xml 텝에서 왼쪽에 보면 palette가 보이고, 여러가지 레이아웃과 버튼을 끌어 쓸 수 있게 되어있습니다. 1. 버튼 두개를 적당히 드래그해서 배치 합니다. 2. 각각의 버튼을 클릭 한 후, 맨 오른쪽 창에 property 창에서 onClick 속성을 찾아서, 각각을 Button1Clicked , Button2Clicked라고 작성 해 줍니다. 3. 텍스트에 네이버 접속하기 , 전화걸.. 더보기
[Android] 첫 프로젝트 만들기 1. configure을 눌렀던 첫번째 창으로 돌아가서, "Start a new android Studio project" 를 클릭 해 줍니다 2. Application name 란에 프로젝트의 이름을 설정하고, Company Domain 란에는 "androidtown.org" 를 입력합니다(화면이 까만 이유는 제가 먼저 해보다가 테마를 바꿨습니다.. ) 3. Next를 누르면 어떤 플랫폼을 위한 앱인지 선택하는 화면이 나타납니다. 저는 phone app을 만들 것 이므로 Phone and Tablet을 체크하고 next를 누릅니다. 4. 이 화면에서는 어플을 처음 시작 했을 때, 첫 시작화면을 어떤것으로 시작 할 것인지를 선택하게 합니다. 각자가 어떤 역할을 하는지는 차차 알아가고, 우선 Empty A.. 더보기
안드로이드 개발환경 구축하기 안드로이드 개발환경을 구축하기에 앞서서, 안드로이드 어플을 만들기 위한 언어중 하나인 java를 사용할 것입니다. 안드로이드 개발을 하려는 분들 중 자바 설치가 되어있지 않은 분들은 java를 먼저 설치하고, 환경변수까지 설정한 후에 안드로이드 스튜디오를 설치 해야 합니다.(설치 방법은 구글에 검색하면 많이 나옵니다.) 안드로이드 스튜디오는 (http://developer.android.com/studio/index.html) 이 주소로 들어가시면 다운로드 버튼을 클릭하셔서 설치하시면 됩니다 중간에 매우 많은 next가 나오게 되는데, 아무것도 건드리지 않고 next를 눌러줍니다. 설치가 끝나면 위의 창이 뜨는데, ok 버튼만 누르면 안드로이드 스튜디오 프로그램이 시작됩니다. 안드로이드 스튜디오가 처음 .. 더보기