어댑터뷰

Similar documents
안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

13ÀåÃß°¡ºÐ

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

( )부록

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt

<4D F736F F F696E74202D205BC3D6C1BE5D3133C1D6C2F720B8AEBDBAC6AEBAE420B0ADC0C7C0DAB7E12D >

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

슬라이드 1

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

헬로, 안드로이드 13 주차 SQL 활용하기 (2) 강대기동서대학교컴퓨터정보공학부

리니어레이아웃 - 2 -

안드로이드애플리케이션과통합하는데는자바가편하므로대표적인두가지라이브러리를비교해보자. 자바 ID3 태그라이브러리 jaudiotagger ID3v1, ID3v1.1, Lyrics3v1, Mp3, Mp4 (Mp4 오디오, M4a 지원범위 Lyrics3v2, ID3v2.2, ID

03장

학습목표 선언하여디자인을하는방법을이해하고, 실행할수있다. 시작화면을만드는방법과대체리소스를사용하는방법을이해하고실행할수있다. About 과같은상자를구현하고, 테마를적용하는법을이해하고실행할수있다.

OpenCV와 함께하는 컴퓨터 비전 프로그래밍 캠프

PowerPoint 프레젠테이션

슬라이드 1

// 화면을터치하였을때해야할작업구현 case MotionEvent.ACTION_MOVE: // 화면을드래그하였때 // 화면을드래그하였을때해야할작업구현 case MotionEvent.ACTION_UP: // 화면에서터치가사라질때 // 화면에서터치가사라질때해야할자업구현 c

안드로이드2_14

뷰그룹 ( 레이아웃 ) 레이아웃이름 ( 클래스이름 ) FrameLayout LinearLayout 설명단일객체를표현하기위한프레임. 왼쪽상단에하나의뷰를배치하기때문에나중 에그린객체만보여준다. 수평또는수직으로자손의뷰를배치. 뷰가들어갈만한공간이없을때는자동으로 스크롤바가나타난다

슬라이드 1

5장.key

09-interface.key

제8장 자바 GUI 프로그래밍 II

PowerPoint 프레젠테이션

Spring Data JPA Many To Many 양방향 관계 예제

50_1953.pdf

OOP 소개

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

rmi_박준용_final.PDF

05-class.key

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Daum 카페

슬라이드 1

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

2_안드로이드UI

PowerPoint Presentation

gnu-lee-oop-kor-lec10-1-chap10

비긴쿡-자바 00앞부속

슬라이드 1

PowerPoint Presentation

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

전자공학설계실험 A 보고서 화 6A ~ 9B 박종태교수님 제출기한 ( 화 ) Android I.S 작업환경 Eclipse_Juno ver. 전자공학부 이상엽전자공학부 오윤재전자공학부

JMF3_심빈구.PDF

ch09

Microsoft PowerPoint UI-Layout.Menu.pptx

01-OOPConcepts(2).PDF

Spring Boot/JDBC JdbcTemplate/CRUD 예제

01장

C# Programming Guide - Types

Android Master Key Vulnerability

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

REMON Android SDK GUIDE (SDK Version 1.4.1) 1 / 25

목차 1. Samsung In-App Purchase 소개 다운로드 IAP 3.0 Helper & Sample IAP 3 제약사항 IAP 3 개발모드 지원상품타입 IAP 3

자바 프로그래밍

Microsoft PowerPoint - 04-UDP Programming.ppt

¾Èµå·ÎÀÌµå ³¹Àå-Åë.PDF

레이아웃 (Layout)

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

Design Issues

INAPP결제 API 가이드

슬라이드 1


PowerPoint 프레젠테이션

12 주차 인텐트

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Interstage5 SOAP서비스 설정 가이드

12-file.key

mytalk

Something that can be seen, touched or otherwise sensed

Microsoft PowerPoint - 4주차_Android_UI구현.ppt [호환 모드]

- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas

<4D F736F F D20284B B8F0B9D9C0CF20BED6C7C3B8AEC4C9C0CCBCC720C4DCC5D9C3F720C1A2B1D9BCBA2020C1F6C4A720322E302E646F6378>

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 2강

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

헬로, 안드로이드 11 주차 위치파악하기와감지하기 강대기동서대학교컴퓨터정보공학부

gnu-lee-oop-kor-lec06-3-chap7

<BFF8B5E5B7CEC0CCB5E5322E687770>

07 자바의 다양한 클래스.key

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

Microsoft PowerPoint - DoItAndroid_PART02_01_기본위젯과레이아웃_Rev.1.0 [호환 모드]

PowerPoint 프레젠테이션

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

PowerPoint Presentation

DocsPin_Korean.pages

PowerPoint 프레젠테이션

자바GUI실전프로그래밍2_장대원.PDF

Contents v 학습목표 뷰와레이아웃에대해이해하고, 레이아웃을활용, 관리하는여러가지기법들에대하여알아본다. v 내용 뷰 (View) 리니어레이아웃 (Linear Layout)

PowerPoint Presentation

제11장 프로세스와 쓰레드

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

<4D F736F F F696E74202D20BEC8B5E5B7CEC0CCB5E520BEDB20B0B3B9DF20C6AFB0AD E342E312EC3D6C1BEBCF6C1A42DC0CEBCE2BABB292E707

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Transcription:

04 커스텀어댑터뷰 (Custom Adapter View)

커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

1. 항목 XML 레이아웃정의 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/iconitem" 이미지뷰 android:layout_width="@dimen/icon_size" android:layout_height="@dimen/icon_size" android:scaletype="centerinside" android:padding="@dimen/icon_padding" android:layout_gravity="center_vertical" android:layout_weight="1" /> 1/2 https://github.com/kwanulee/android/blob/master/examples/customadapterview/app/src/main/res/layout/item.xml

1. 항목 XML 레이아웃정의 <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2"> <TextView android:id="@+id/textitem1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textcolor="@color/coloraccent" android:textsize="@dimen/list_item_text_size1" android:padding="@dimen/list_item_padding" /> <TextView android:id="@+id/textitem2" /> </LinearLayout> </LinearLayout> 이미지뷰 2/2 https://github.com/kwanulee/android/blob/master/examples/customadapterview/app/src/main/res/layout/item.xml

2. 어댑터정의 class MyItem { int micon; // image resource String nname; // text String nage; // text MyItem(int aicon, String aname, String aage) { micon = aicon; nname = aname; nage = aage; class MyAdapter extends BaseAdapter { private Context mcontext; private int mresource; private > mitems = new ArrayList<MyItem>(); ArrayList<MyItem public MyAdapter(Context context, int resource, ArrayList<MyItem> items) { mcontext = context; mitems = items; mresource = resource; public int getcount() { return mitems.size(); public Object getitem(int position) { return mitems.get(position); public long getitemid(int position) { return position; 1/2 https://github.com/kwanulee/android/blob/master/examples/customadapterview/app/src/main/java/com/kwanwoo/android/customadapterview/myadapter.java

2. 어댑터정의 public View getview(int position, View convertview, ViewGroup parent) { if (convertview == null) { LayoutInflater inflater = (LayoutInflater) mcontext.getsystemservice(context.layout_inflater_service); convertview = inflater.inflate(mresource, parent,false); // Set Icon ImageView icon = (ImageView) convertview.findviewbyid(r.id.iconitem); icon.setimageresource(mitems.get(position).micon); // Set Text 01 TextView name = (TextView) convertview.findviewbyid(r.id.textitem1); name.settext(mitems.get(position).nname); // Set Text 02 TextView age = (TextView) convertview.findviewbyid(r.id.textitem2); age.settext(mitems.get(position).nage); return convertview; 2/2 https://github.com/kwanulee/android/blob/master/examples/customadapterview/app/src/main/java/com/kwanwoo/android/customadapterview/myadapter.java

3. 어댑터생성및연결 public class MainActivity extends AppCompatActivity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // 데이터원본준비 ArrayList<MyItem> data = new ArrayList<MyItem>(); data.add(new MyItem(R.drawable.sample_0, "Bella", "1")); data.add(new MyItem(R.drawable.sample_1, "Charlie", "2")); // 어댑터생성 MyAdapter adapter = new MyAdapter(this, R.layout.item, data); // 어댑터연결 ListView list = (ListView) findviewbyid(r.id.listview); list.setadapter(adapt); https://github.com/kwanulee/android/blob/master/examples/customadapterview/app/src/main/java/com/kwanwoo/android/customadapterview/mainactivity.java

항목클릭이벤트처리 u AdapterView 의항목이클릭될때, 호출되는 callback method 의인터페이스 public static interface AdapterView.OnItemClickListener { abstract void onitemclick(adapterview<?> parent, View view, int position, long id); 파라미터 parent view position id 설명클릭이벤트가발생된 AdapterView 실제클릭된 AdapterView 안의 View 어댑터내에서클릭된항목 / 뷰의위치클릭된항목의 id

항목클릭이벤트처리 MyAdapter adapter = new MyAdapter(this, R.layout.item, data); listview.setonitemclicklistener(new AdapterView.OnItemClickListener() { public void onitemclick(adapterview<?> parent, View vclicked, int position, long id) { // 클릭된뷰 (vclicked) 안에서 id 가 textitem1 인의레이블을얻어옴 // String name = (String)((TextView)vClicked.findViewById(R.id.textItem1)).getText(); // 어댑터 (adapter) 내의 position 위치의항목의 nname 값을읽어옴 String name = ((MyItem)adapter.getItem(position)).nName; ); Toast.makeText(MainActivity.this, name + " selected", Toast.LENGTH_SHORT).show(); https://github.com/kwanulee/android/blob/master/examples/customadapterview/app/src/main/java/com/kwanwoo/android/customadapterview/mainactivity.java#l37-l45