전체 글 354

Android - ListView, CursorAdapter 그리고 _id

SQLite의 Data를 ListView에 표시하기 위해서는 CursorAdapter를 사용해서 ListView에 연결시켜 주면 된다. [관련글 링크] 이 SQLite에서 select해서 가져오는 data를 보면 아래와 같이 _id, title, body, done 등 4개이다. "_id integer primary key autoincrement, " + "title text, " + "body text, " + "done integer" 그런데 사실 나의 의도는 위의 4개 data를 모두 list상에 보여주는 것이 아니라 body와 done만 보여주고 싶다. 이래저래 열심히 구글링을 해보니 sqlite를 select한 결과물인 cursor를 나름대로 조작해서 새롭게 ArrayAdapter를 만드는 방..

Android 2016.01.14

Android - SQLite 사용하기

Android 에서 Data를 저장하는 방식에 어려가지가 있다. 사실 PC라고 해서 딱히 다르지는 않다. file system에 file 로 저장하는 방법, Database에 저장하는 방법, Network Storage에 저장하는 방법 등 여러가지가 있다. 그 중 이 글에서는 database에 저장하는 방법에 대해 알아보고자 한다. database에 대해 기본적인 지식이 있는 사람들은 알고 있겠지만 Database의 종류에도 여러가지가 있다. oracle, mysql, mssql 등등등등.... 종류가 너무나도 많다. 그 중 android에 기본적으로 들어 있는 sqlite를 android app에서 접근해서 사용하는 방법에 대해 알아보자. sqlite는 기본적으로 android에 들어 있고, 우리가 흔..

Android 2016.01.12

wordpress 비밀번호 분실시 대응.

wordpress를 무심코 설치하다 보니, 그냥 임의로 들어있는 비밀번호가 나의 비밀번호가 되어 버렸다.충격적이게도 너무 복잡한 비밀번호라 기억도 안나고 바로 밑에 비밀번호찾기는 이메일로 전송해 주는것 같은데 내서버에는 메일서버도 들어 있지 않아 비밀번호를 찾을 방법이 없다. 이럴때는 그냥 Database를 뒤져서 설정하는 수 밖에 없다. mysql> use wordpress;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A Database changedmysql> update wp_users set user_pass = md..

Database 생성 및 권한 주기

그 유명하다는 wordpress를 설치하다보니 신규 database가 필요하게 되었다. 사실 어려운 명령어는 아니지만 할 때 마다 잊곤한다. 다시 한 번 정리하면 다음과 같다. $> mysql -u root -pmysql> create database wordpress;mysql> use wordpress;mysql> grant all on wordpress.* to myid@localhost; 모든 권한을 주는게 보안상 문제가 있을 수 있지만 우선은..... 위와같이 하면 wordpress를 설치하는데에는 문제가 없다.;;

Database 2016.01.11

Android - ListView and Adapter

android app을 시작하면서 adapter라는 개념이 잘 와닿지 않았다. list를 만들기 위해서 listview에 data를 넘겨주면 자동으로 보여주면 되지, data를 adapter에 연결하고, 이를 다시 listview에 연결하고, 대체 왜 이 adapter라는게 필요한지 잘 이해가 안갔다. 자료를 좀 찾아보니 data(Text, Image 등)별로 처리하는 방법이 다 다를테고, 그렇다고 view마다 해당 data에 대한 처리 routine을 구현해야 한다면 view마다 동일 내용을 일일이 넣어 줘야 하는 불상사가 생긴다. 즉, view에 넘겨주는 부분은 adapter라는 class로 일원화 시키고, data에 따른 구현은 해당 adapter class를 extend시켜 하나의 class로 구..

Android 2016.01.09

Android - Layout (레이아웃)

Android App에서 Layout (화면구성)을 구성/선언하는 방법은 두가지가 있다. 1. XML로 선언하여 표시-. UI를 표시하는 XML을 별도로 두어 Code 구현과 화면 Design을 구분하는 방법이다. UI를 분리하여 구현 가능하다는 장점이 있지만 사용자 반응에 따라 혹시 어떤 event에 따라 dynamic 하게 UI가 변경되지는 못한다는 단점이 있다. 2. Runtime시 Instance 로 선언(코드)하여 표시-. 위 XML로 선언하는 방식에 비해 코드와 Design의 분리가 불가능하다는 단점이 있지만, Runtime시 UI를 변경할 수 있다는 장점이 있다. 이에 따라 기본적인 UI는 XML로 표시하고, Runtime시 변경이 필요한 UI 부분에 대해서는 추가적으로 코드 구현을 하는 것..

Android 2016.01.08

Android - Content Providers (콘텐츠 제공자)

Content Provider는 한 Process의 Data에 다른 Process에서 연결가능하도록 하는 표준 interface 이다. [Application A_ContentResolver] [Application B_ContentProvider] [Application B_Data] 외부에서 Application B의 Data에 접근하기 위해서는 기본적으로 Application B에서 Content Provider의 구현이 필요하다. 즉, 외부에 Data 공유가 필요없다면 Content Provider를 제공하지 않아도 된다. 이렇게 외부에서 Data에 접근이 가능하도록 Content Provider가 제공된다면 접근하는 쪽에서는 Content Resolver 가 필요하다. 즉, Content Pro..

Android 2016.01.06

Android - Services (서비스)

Background에서 실행되는 구성요소로 Activity와 같이 사용자 UI를 제공하지 않는다.다른 구성 요소에서 Service를 시작할 수 있고, 해당 구성 요소를 소멸시키더라도 background에서 계속해서 실행하게 된다.추가로 실행되고 있는 Service에 다른 구성요소가 binding 하여 상호 작용을 할 수 있다. 다른 구성요소인 Activity와 같이 상태가 존재한다. StartedStarted 상태가 되기 위해서는 App 구성요소에서 startService()를 호출하면 된다.Service는 자신을 호출한 구성요소가 소멸하더라도 상관없이 남아 있고, 한번 시작되면 계속 실행될 수 있다. 다만 Service내 구현이 무기한 실행이 아니라 정해진 작업이 있고, 이가 완료되었다면 중단 될 수 ..

Android 2016.01.05

Android - Tasks (작업) 그리고 BackStack

이전 글인 구성요소, Activity 에서 확인했듯이,기본적으로 하나의 APP은 여러개의 Activity로 구성되어 있으며, 각 Activity는 서로 다른 Activity를 호출할 수 있다. 같은 APP내의 Activity 뿐만 아니라 다른 APP내의 Activity까지 호출이 가능하다. 예를 들어 카메라 앱에서 사진은 찍은 후, 갤러리 앱으로 넘어가 찍은 사진을 확인한다거나Web browser 내에서 관심있는 APP을 검색 중 APP market으로 바로 넘어가 다운로드 받는 등의 경우이다. 이렇게 다른 APP의 Activity 를 자유롭게 호출하여 넘어갈 수 있다보니 APP간에 경계가 없다고 볼수 있는데,이로인해 Activity는 Application 단위보다는 Task라는 개념의 단위로 이해하는 ..

Android 2016.01.05