android19 [안드로이드] 뒤로 버튼 두번 눌러 종료하기 많은 안드로이드 앱들이 앱 종료시 BackKey(뒤로) 버튼을 두번 눌러 종료하는 방식을 사용한다. 물론 '뒤로'버튼 한번으로 종료, 또는 '뒤로' 버튼시 다이얼로그의 종료 확인 버튼을 클릭하여 종료하는 방식도 있다. 하지만 많은 앱들이 '뒤로'버튼을 두번 눌러 종료하는 방법을 선호하는 것 같아 이 방법에 대해 알아본다. 종료할 액티비티에 바로 코딩하는 방법도 있으나 클래스화 하는게 더욱 깔끔해 보인다. '뒤로' 버튼 클릭시 필요한 기능을 BackPressedForFinish.class 를 만들어 여기에 코딩한다. * BackPressedForFinish.java package com.studio572.samplebackpress; import android.app.Activity; import andr.. 프로그래밍/안드로이드 2017. 8. 15. [안드로이드] 키보드 보이기(올리기) / 숨기기(내리기) - android keyboard show/hide 안드로이드 앱 개발에 있어서 EditText에 소프트키보드(가상키보드)을 터치가 아닌 동적으로 보이거나 숨기는 기능을 구현해야 할 때가 있다. 여기서 소프트키보드(가상키보드)를 강제로 보이거나 숨기는 방법에 대해서 알아본다. 이 기능을 구현하는 코드는 간단하다. 1. InputMethodManager 객체를 선언한다. InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); EditText input1 = (EditText) findViewById(R.id.input1); 우선 위와 같이 InptMethodManager 객체를 선언하고 getSystemService(INPUT_METHOD_SERVCIE) 로 .. 프로그래밍/안드로이드 2017. 8. 14. [안드로이드] 쉐어드 프리퍼런스 저장/불러오기 (Shared Preference) 안드로이드의 앱에서 데이터를 저장하는 방법에 대해서 알아본다. 앱에서 데이터 저장은 sqlite(DataBase)를 이용하는 방법과 쉐어드 프리퍼런스(Shared Preference)를 이용하는 방법이 있다. 쉐어드 프레퍼런스는 sqlite(DataBase)를 사용하지 않아도 데이터 저장이 가능하다. 또 sqlite의 사용보다 좀 더 쉽게 사용할 수있다. 하지만 대용량의 데이터일 때 sqlite보다 느린 단점이 있다고 하니 간단한 환경변수 저장정도에 사용하면 좋을 듯 하다. 앱이 종료 후 다시 실행되도 저장한 데이터는 삭제되지 않으나 앱을 삭제시에는 데이터도 삭제된다. 아래 동영상에 프리퍼런스를 구현한 것을 코딩한 소스를 살펴본다. * SharedPreference 정의 1. 저장 > SharedPref.. 프로그래밍/안드로이드 2017. 8. 13. [안드로이드] xml selector - 버튼 눌림(클릭) 효과 커스텀하여 만들기 안드로이드 버튼(Button) 위젯은 클릭(터치)했을때 버튼이 눌리는 효과가 발생한다. 하지만 이는 단조로운 색으로 한 가지의 버튼 클릭 효과만 제공한다. 그럼 둔탁한 회색의 버튼만 사용해야 되는 것인가? 아니다. 버튼의 속성중에 android:background 에 이미지나 색을 넣어주면 된다.. 하지만 이 방법도 썩 좋은 방법은 아니다. 버튼에 이미지 또는 색을 넣어도 버튼이 눌렸을때의 효과를 볼 수 없다. 그러면 어찌하면 되는가? 이 때 바로 쓰이는 방법이 selector를 만드는 것이다. selector xml의 이벤트 종류중 일반적으로 많이 쓰는 것은 6개 정도로 추릴 수 있다. android:state_pressed = [true(눌렸을때) , false(안눌렸을때)] android:state.. 프로그래밍/안드로이드 2017. 8. 12. [안드로이드] 리스트뷰 검색 기능 구현 (android ListView search) 리스트뷰(ListView)에 많은 데이터 값(data value)들이 들어간다. 그 수많은 데이터 값들 중에 우리가 필요한 데이터 값만 검색하였으면 하는 기능이 필요할 때가 있다. 검색할 단어를 Input창에 입력하면 그 단어가 포함된 단어 또는 문장이 검색되는것이다. 이 기능은 의외로 간단한 코드로 이루어져있다. 리스트뷰(ListView)를 사용할 줄 안다면 쉽게 구현이 가능하다. 우선 리스트뷰에 연결할 아답터부터 작업한다. * row_listview.xml 리스트뷰의 셀에 데이터를 노출할 TextView를 정의한다. * SearchAdapter.java package com.studio572.searchlistview; import android.content.Context; import androi.. 프로그래밍/안드로이드 2017. 8. 10. [안드로이드] 커스텀 다이얼로그 ( Custom Dialog ) 만들기 일반적인 다이얼로그로 AlertDailog가 있습니다. 하지만 AlertDialog는 타이틀, 메시지, 버튼으로만 구성할 수 있습니다. 그래서 사용자에 맞게 다이얼로그를 커스텀하여 만들어야 할때가 있습니다. 그럼 Custom Dialog (사용자 정의 다이얼로그)를 만들어 보겠습니다. 아래 영상은 커스텀 다이얼로그 사용 영상입니다. 커스텀 다이얼로그를 호출할 메인 액티비티 레이아웃 먼저 정의합니다. * activity_main.xml TextView의 main_label에 커스텀 다이얼로그에서 입력한 값이 출력됩니다. Button의 button은 커스텀 다이얼로그 호출하는 버튼이 되겠습니다. 다음은 메인 액티비티 코드입니다. * MainActivity.java package com.studio572.cu.. 프로그래밍/안드로이드 2017. 8. 9. [안드로이드] ListView paging ( 리스트뷰 스크롤이 맨 하단으로 갔을 때 페이징 )처리 안드로이드에 가장 많이 쓰이는 위젯(widget) 중 하나가 리스트뷰(ListView)이다. 스마트폰이라는 작은 화면에 많은 데이터를 보여주기 위한 방법 중 하나로 리스트뷰가 사용된다. 하지만 아무리 좋은 리스트뷰라도 한번에 많은 데이터를 몽땅 불러온다면, 로딩시간이 오래걸릴 수 밖에 없다. 그래서 일정한 갯수의 데이터를 정해놓고, 로딩하는 것이 효율적이다. 그러기 위해서는 리스트뷰가 맨 하단(ListView의 마지막 셀)에 스크롤(scroll) 되었을때가 언제인지를 캐치하여 그 다음 데이터를 불러오는것을 알아보도록 한다. 안드로이드 앱의 ListView에서 데이터 20개씩 페이징 하는 영상 우선 ListView와 Adapter에서 UI로 사용 할 xml을 먼저 정의한다. * listview_paging.. 프로그래밍/안드로이드 2017. 8. 8. 이전 1 2 다음