HashMap에 원하는 데이터를 입력하여 ArrayList의 item 추가한 후, 다시 ArrayList에서 HashMap을 꺼내서 HashMap에 있는 값들을 출력하는 예제코드입니다. Java(JDK)와 Android Studio를 사용하여 각각 테스트 하기 위한 코드를 추가해두었습니다. JAVA import java.util.ArrayList; import java.util.HashMap; public class HashMapTest { public static void main(String[] args) { String TAG_ID = "id"; String TAG_NAME = "name"; String TAG_ADDRESS ="address"; ArrayList mArrayList = new Ar..
이전 포스팅에서 언급했던 화면 크기 제약으로 일정 개수만 리스트뷰에 보여주게 되는 원리를 설명하려면 getView 메소드가 포함된 Custom Adapter를 구현해야 합니다. 이번 포스팅에선 동작을 설명하고 자세한 구현방법은 다음 포스팅에서 설명하도록 하겠습니다. 최종 업데이트 - 2018. 6. 30 ArrayList, ArrayAdapter와 ListView - 1. 기본적인 사용 방법http://webnautes.tistory.com/1190 ArrayList, ArrayAdapter와 ListView - 2. ListView와 Adapter의 동작 살펴보기 ArrayList, ArrayAdapter와 ListView - 3. Custom Adapter를 구현하는 방법(ViewHolder, get..
본 포스팅에서는 ArrayList에 저장되어 있는 데이터를 ListView에 보여주기 위해 ArrayAdapter를 사용하는 방법을 코드적으로 설명합니다. 자세한 구현 방법은 MainActivity.java에 있는 주석을 번호 순으로 읽어보세요.다음 포스팅에서는 화면 크기 제약으로 일정 개수만 리스트뷰에 보여주게 되는 원리를 설명합니다. 최초 작성 - 2018. 6. 24 ArrayList, ArrayAdapter와 ListView - 1. 기본적인 사용 방법 ArrayList, ArrayAdapter와 ListView - 2. ListView와 Adapter의 동작 살펴보기http://webnautes.tistory.com/1194 ArrayList, ArrayAdapter와 ListView - 3. ..
strings.xml 파일에 문자열 서식을 지정하여 ArrayList에 저장되어 있는 문자열들을 TextView에 출력하는 예제입니다. 앱의 레이아웃은 TextView만 있는 간단한 구조입니다. 우선 임의로 ArrayList에 다음처럼 데이터를 입력했습니다. for (int i = 0; i < 20; i++) { HashMap hashMap = new HashMap(); hashMap.put(TAG_ID, "id " + i); hashMap.put(TAG_NAME, "name " + i); hashMap.put(TAG_ADDRESS, "address " + i); mArrayList.add(hashMap); } strings.xml 파일에서 다음처럼 TextView에 출력할 문자열의 서식을 지정해줍니다...
16진수 문자열과 바이트 배열간의 변환하는 방법을 소개합니다. String 타입의 변수 hexString에 16진수 문자열 01020304FF11을 대입합니다. String hexString = "01020304FF11"; hexStringToByteArray 메소드를 사용하면 16진수 문자열을 바이트 배열 ByteArray로 변환합니다.byte[] ByteArray = hexStringToByteArray(hexString); 다음과 같이 바이트 배열에 들어가게 됩니다. { 0x01, 0x02, 0x03, 0x04, 0xFF, 0x11} byteArrayToHexString 메소드를 사용하면 다시 16진수 문자열로 변환할 수 있습니다. String str = byteArrayToHexString(Byt..
AsyncTask를 이용하여 URL 주소로부터 동영상 다운로드하는 작업을 백그라운드 스레드에서 수행하면서 다운로드 진행사항을 프로그레스 다이얼로그에 보여주기 위해서 UI 스레드에 요청하는 과정을 아래 포스팅에서 소개했습니다.[Android/개념 및 예제] - 안드로이드 개념 및 예제 - AsyncTask AsyncTask 실행 중, 화면 회전시 문제점위 포스팅에서 소개한대로 하면 문제 없이 동작할 것처럼 보이지만 디바이스의 화면 회전시 IllegalArgumentException라는 예외가 발생합니다. 왜냐하면 디바이스의 화면이 회전할 때, 기존 Activity 인스턴스가 destroy되고 새로운 Activity 인스턴스가 생성되는데 이때 기존 Activity 인스턴스에서 생성되었던 AsyncTask에 ..
다이얼로그(dialog)는 전체 화면을 다 채우지 않고 일부 화면만 가리는 윈도우로, 사용자가 예/아니오 같은 선택을 하거나 추가적인 정보 입력을 하기를 기다립니다. 사용자가 응답하기 전까지는 화면에서 사라지지 않고 대기하며 프로그래밍 코드도 잠시 대기상태가 됩니다.(modal event) 여기에서는 Dialog의 서브클래스인 AlertDialog로 만들 수 있는 다이얼로그 예제들을 보여줍니다.메시지와 예 또는 아니오리스트입력창(EditText)다중 선택 리스트단일 선택 리스트Custom Layout(로그인창)DialogFragment( Activty에서 호출한 경우 스트링을 반환받는 방법)DialogFragment( Fragment에서 호출한 경우 스트링을 반환받는 방법) AlertDialog의 구성요..
Android 3.0(API 11)에서 Fragment가 처음 소개되었습니다. 재사용 가능한 유저 인터페이스를 생성하기 위한 새로운 컴포넌트라고 볼 수 있습니다. Fragment를 사용하면 코드를 재사용하여 동시에 여러 크기의 기기 화면 크기를 지원해 줄 수 있습니다. 예를 들어 태블릿과 폰을 위한 코드를 각각 따로 작성해줄 필요가 없습니다. Fragment는 자신만의 레이아웃을 이용하여 화면에 유저 인터페이스를 보여줄 수 있으며, 자신만의 라이프 사이클 콜백 함수들을 가지고 자신을 포함한 Activity로부터 독립적으로 동작합니다. 하지만 혼자 독자적으로 동작할 수 없으며, Fragment 라이프 사이클은 자신이 포함된 Activity 라이프 사이클의 영향을 받습니다. 예를 들어 Activity가 pa..
본 글은 안드로이드에서 AsyncTsak의 개념 및 사용법에 대해 설명합니다. 동기(sync)와 비동기(async)동기적으로 태스크를 실행한 후, 다른 태스크를 실행하려면 먼저 실행된 태스크가 종료되기를 기다려야 합니다. 비동기적으로 태스크를 실행하면 먼저 실행된 태스크가 종료되기 전에 다른 태스크를 실행할 수 있습니다.예를 들어 메인 스레드가 실행되는 중에, 다른 스레드를 백그라운드로 실행시켜 두고 계속 메인스레드는 자신의 작업을 하다가, 이 후 백그라운드에서 돌던 스레드가 종료시 결과값을 받을 수 있습니다. AsyncTask 개념앱이 실행되면 안드로이드 시스템은 메인 스레드를 생성합니다. 이 스레드는 안드로이드 UI 툴키트에 접근합니다. 사용자의 입력을 기다리거나 디바이스 화면에 그리는 작업등을 다룹..
AsyncTask 예제를 작성하기 위해 프로그램 작성하기 시작했는데 필요한 기능들을 하나씩 계속 넣다보니 여러 가지가 포함되어 버렸습니다. 최종적으로 완성된 앱은 URL 주소로부터 동영상 다운로드 후 재생시켜 주는 작업을 합니다. 포스팅에 포함된 코드에는 다음 내용들이 추가되어있습니다. 주석을 추가해놓긴 했지만 복잡해보여서 추후 다음 항목별로 따로 포스팅을 작성하여 코드 설명을 추가하도록 하겠습니다. 안드로이드 6.0 마시멜로( API 23 )이상에서 런타임 퍼미션(Runtime Permission) 처리AsyncTask 사용URLConnection, InputStream, OutputStream을 이용하여 URL 주소에 있는 동영상 파일 다운로드 후, 로컬에 저장하기PowerManager.WakeLoc..