리니어레이아웃 - 2 -

Similar documents
[ 그림 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

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

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

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

2_안드로이드UI

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

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

13ÀåÃß°¡ºÐ

( )부록

어댑터뷰

PowerPoint 프레젠테이션

01장

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

Microsoft PowerPoint - 04기본위젯(Ver 1.0)

03장

슬라이드 1

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

Daum 카페

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

TipssoftAppActivity.java // 기본소스파일 main.xml // 배치와구성에관련된리소스파일 string.xml // 프로그램에서사용할문자열에관련된리소스파일 컴파일을하고나면 r.java 라는소스파일이하나추가되는데이파일은리소스파일을소스파일에서이용할수있도

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

PowerPoint Presentation

50_1953.pdf

Visual Basic 반복문

슬라이드 1

안드로이드2_14

슬라이드 1

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

(Microsoft PowerPoint - Ch06.ppt [\310\243\310\257 \270\360\265\345])

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

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

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

레이아웃 (Layout)

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

<4D F736F F F696E74202D B3E25FB8F0B9D9C0CFBEDBC7C1B7CEB1D7B7A1B9D6205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

Microsoft PowerPoint - chap05-제어문.pptx

PowerPoint 프레젠테이션

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

01 [ 일기장 ] 애플리케이션프로젝트작성 - [MyDiary] 앱 Mobile Apps >> [MyDiary] 앱프로젝트구조설계 일기장애플리케이션인 [MyDiary] 앱은메인화면과일기장의내용을작성하는화면으로이루어져있다. 화면이 2개라는것은액티비티가 2개이고액티비티에대

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

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Java ...

PowerPoint 프레젠테이션

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

<4D F736F F F696E74202D205BC3D6C1BE5D3133C1D6C2F720B8AEBDBAC6AEBAE420B0ADC0C7C0DAB7E12D >

PowerPoint 프레젠테이션

PowerPoint Template

슬라이드 1

Microsoft PowerPoint - 02처음으로만드는(Ver 1.0)

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

쉽게 풀어쓴 C 프로그래밍

<BFF8B5E5B7CEC0CCB5E5322E687770>

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 08.다형성

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

콘텐츠 PowerPoint 디자인

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

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

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

PowerPoint Presentation

Microsoft PowerPoint - additional01.ppt [호환 모드]

PowerPoint Presentation

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

Microsoft PowerPoint - lec2.ppt

PowerPoint Presentation

Microsoft PowerPoint - 14주차 강의자료

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

PowerPoint Presentation

Index

슬라이드 1

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

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

SECTION 01 _ 액션바 (ActionBar) 405 액션바만들기 참고프로젝트 ActionBarDemoA1 간단히액션바를만들고이액션바가 WVGA(800*480) 과 WXGA(1280*800) 에서어떻게보이는지확인해보도록하겠다. 액션바를만든다는표현을했지만액션바는타이

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft PowerPoint - 06-Chapter09-Event.ppt

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

Layout

adfasdfasfdasfasfadf

XML Parser

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

슬라이드 1

Android Master Key Vulnerability

윈도우즈프로그래밍(1)

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - chap04-연산자.pptx

K&R2 Reference Manual 번역본

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Chapter 4. LISTS

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Transcription:

4 차시레이아웃 1 학습목표 레이아웃의개념을이해한다. 중복리니어레이아웃의개념이해한다. 2 확인해볼까? 3 레이아웃개념익히기 1) 학습하기 [ 그림 4-1] ViewGroup 클래스계층도

리니어레이아웃 - 2 -

[ 예제 4-1]orientation 속성-horizontal 1 <LinearLayout 2 ~~~~~~~~ 중간생략 ~~~~~~~ 3 android:orientation="horizontal"> 4 5 6 7 android:text="button1" /> 8 9 10 11 android:text="button2" /> 12 13 14 15 android:text="button3" /> 16 </LinearLayout> 3행 orientation 속성을 horizontal로설정하여버튼들이왼쪽위에서부터오른쪽으로배치된다. orientation 속성은디폴트로 horizontal 값을가지므로본행을삭제하여도동일한결과가나온다. [ 예제 4-2]orientation 속성-vertical 1 <LinearLayout 2 ~~~~~~~~ 중간생략 ~~~~~~~ 3 android:orientation="vertical"> 4 5 6 7 android:text="button1" /> - 3 -

8 9 10 11 android:text="button2" /> 12 13 14 15 android:text="button3" /> 16 </LinearLayout> 3행 orientation 속성을 vertical로설정하여버튼들이왼쪽위에서부터아래방향으로배치된다. 본행이없으면수평방향으로배치된다. [ 예제 4-3]gravity 속성 1 <LinearLayout 2 ~~~~~~~~ 중간생략 ~~~~~~~ 3 android:orientation="vertical" 4 android:gravity="center bottom"> 5 6 7 8 android:text="button1" /> 9 10 11 12 android:text="button2" /> 13 14 15 16 android:text="button3" /> 17 </LinearLayout> 4행 gravity 속성을가운데아래에설정하여위젯들이화면의가운데아래에배치되어있다. - 4 -

[ 예제 4-4]layout_gravity 1 <LinearLayout 2 ~~~~~~~~ 중간생략 ~~~~~~~ 3 android:orientation="vertical"> 4 5 6 7 android:layout_gravity="left" 8 android:text="button1" /> 9 10 11 12 android:layout_gravity="center" 13 android:text="button2" /> 14 15 16 17 android:layout_gravity="right" 18 android:text="button3" /> 19 </LinearLayout> 7, 12, 17행위젯에 layout_gravity 속성을설정하여자신을담고있는레이아웃에서본인은위치를결정한다. - 5 -

[ 그림 4-2] 안드로이드프로젝트구성 [ 예제 4-5] 중복레이아웃 1 <LinearLayout 2 ~~~~~~~~ 중간생략 ~~~~~~~ 3 android:orientation="vertical"> 4 <LinearLayout 5 android:layout_width="match_parent" 6 7 android:gravity="center" 8 android:orientation="horizontal" > 9 10 11 12 android:text="button1" /> 13 14 15 16 android:text="button2" /> 17 </LinearLayout> 18 <LinearLayout 19 android:layout_width="match_parent" 20 21 android:background="#0000ff" 22 android:gravity="center" - 6 -

23 android:orientation="vertical" > 24 25 26 27 android:text="button3" /> 28 29 30 31 android:text="button4" /> 32 </LinearLayout> 33 <LinearLayout 34 android:layout_width="match_parent" 35 36 android:background="#ff0000" 37 android:gravity="center" 38 android:orientation="horizontal" > 39 40 41 42 android:text="button5" /> 43 44 45 46 android:text="button6" /> 47 </LinearLayout> 48 </LinearLayout> 4~17행첫번째내부리니어레이아웃 18~32행두번째내부리니어레이아웃 33~47행세번째내부리니어레이아웃 6, 20, 35행바깥의큰리니어레이아웃의 orientation 특성이수직방향으로 3개의내부리니어레이아웃이수직방향으로배치된다. 이때내부리니어레이아웃의높이 (layout_height 속성 ) 를 match_parent 값으로주면첫번째내부리니어레이아웃만보이고그다음 2개의내부리니어레이아웃은안보이게된다. 그래서 wrap_content 값으로설정하였다. - 7 -

[ 예제 4-6]layout_weight 1 <LinearLayout 2 ~~~~~~~~ 중간생략 ~~~~~~~ 3 android:orientation="vertical"> 4 <LinearLayout 5 android:layout_width="match_parent" 6 android:layout_height="0dp" 7 8 android:gravity="center" 9 android:orientation="horizontal" > 10 11 12 13 android:text="button1" /> 14 15 16 17 android:text="button2" /> 18 </LinearLayout> 19 <LinearLayout 20 android:layout_width="match_parent" 21 android:layout_height="0dp" 22 23 android:background="#0000ff" 24 android:gravity="center" 25 android:orientation="vertical" > 26 27 28 29 android:text="button3" /> 30 31 32 33 android:text="button4" /> 34 </LinearLayout> 35 <LinearLayout 36 android:layout_width="match_parent" - 8 -

37 android:layout_height="0dp" 38 39 android:background="#ff0000" 40 android:gravity="center" 41 android:orientation="horizontal" > 42 43 44 45 android:text="button5" /> 46 47 48 49 android:text="button6" /> 50 </LinearLayout> 51 </LinearLayout> 3행바깥의큰리니어레이아웃의 orientation 속성값이수직이다. 6, 21, 37행바깥의큰리니어레이아웃의 orientation 속성값이수직 (vertical) 일때 layout_weight 속성을사용하려면내부레이아웃의 layout_height 속성값을 0dp로설정해야한다. 반대로, 만약바깥의큰리니어레이아웃의 orientation 속성값이수평 (horizontal) 일때 layout_weight 속성을사용하려면내부레이아웃의 layout_width 속성값을 0dp로설정해야한다. 7, 22, 38행 3개의내부리니어레이아웃들의 layout_weighty 속성을 1로주었다. 이는사용할수있는전체공간을모두활용하여 1:1:1의비율로화면에배치하겠다는것을의미한다. 2) 활동하기 활동개요 - 9 -

[ 그림 4-3] 실행화면 활동과정 - 10 -

[ 예제 4-7]main.xml 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" 6 android:padding="5dp" 7 tools:context=".layoutactivity" > 8 <LinearLayout 9 android:layout_width="match_parent" 10 11 android:layout_margin="5dp" 12 android:orientation="horizontal" > 13 <TextView 14 15 16 android:text=" 첫번째수 " /> 17 <EditText 18 android:id="@+id/edtnum1" 19 20 21 android:hint=" 첫번째수를입력하세요." /> 22 </LinearLayout> 23 <LinearLayout 24 android:layout_width="match_parent" 25 26 android:layout_margin="5dp" 27 android:orientation="horizontal" > 28 <TextView 29 30 31 android:text=" 두번째수 " /> 32 <EditText - 11 -

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 android:id="@+id/edtnum2" android:hint=" 두번째수를입력하세요." /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_margin="5dp" android:orientation="horizontal" > android:id="@+id/btn1" android:text="1" /> android:id="@+id/btn2" android:text="2" /> android:id="@+id/btn3" android:text="3" /> android:id="@+id/btn4" android:text="4" /> android:id="@+id/btn5" android:text="5" /> - 12 -

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_margin="5dp" android:orientation="horizontal" > android:id="@+id/btn6" android:text="6" /> android:id="@+id/btn7" android:text="7" /> android:id="@+id/btn8" android:text="8" /> android:id="@+id/btn9" android:text="9" /> android:id="@+id/btn0" android:text="0" /> </LinearLayout> <TextView - 13 -

113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 android:text=" 연산자 " /> <RadioGroup android:id="@+id/rgroup" android:layout_margin="5dp" > <RadioButton android:id="@+id/rbadd" android:text=" 더하기 " /> <RadioButton android:id="@+id/rbsub" android:text=" 더하기 " /> <RadioButton android:id="@+id/rbmul" android:text=" 더하기 " /> <RadioButton android:id="@+id/rbdiv" android:text=" 더하기 " /> </RadioGroup> android:id="@+id/btncalc" android:layout_width="match_parent" android:layout_margin="5dp" android:text=" 계산하기 " /> <TextView android:text=" 계산결과 : " android:textcolor="#ff0000" android:textsize="20dp" /> </LinearLayout> - 14 -

45, 51, 57, 63, 69행 5개의버튼을담고있는리니어레이아웃의 orientation 속성이 42행처럼수평으로설정되어있고, 수평으로 5개의버튼을배열할때빈공간이발생하지않도록 layout_weight를사용하기위하여 5개버튼위젯들의 layout_width 속성을모두 0dp로설정한다. 46, 52, 58, 64, 70행 5개의버튼이수평방향으로 1:1:1:1:1의비율로배치하도록한다. [ 예제 4-8]LinearLayoutActivity.java 1 package com.example.linearlayout; 2 3 import android.app.activity; 4 import android.os.bundle; 5 import android.view.view; 6 import android.widget.button; 7 import android.widget.edittext; 8 import android.widget.radiogroup; 9 import android.widget.textview; 10 import android.widget.toast; 11 12 public class LinearLayoutActivity extends Activity { 13 14 EditText edtnum1, edtnum2; 15 Button[] numbuttons = new Button[10]; 16 RadioGroup rgroup; 17 Button btncalc; 18 TextView tvresult; 19 String strnum1, strnum2; 20 Integer result; 21 Integer[] numbuttonids = { R.id.btn0, R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4, 22 R.id.btn5, R.id.btn6, R.id.btn7, R.id.btn8, R.id.btn9 }; 23 24 @Override 25 protected void oncreate(bundle savedinstancestate) { 26 super.oncreate(savedinstancestate); 27 setcontentview(r.layout.main); - 15 -

28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 settitle(" 간단사칙연산계산기 "); edtnum1 = (EditText) findviewbyid(r.id.edtnum1); edtnum2 = (EditText) findviewbyid(r.id.edtnum2); rgroup = (RadioGroup) findviewbyid(r.id.rgroup); btncalc = (Button) findviewbyid(r.id.btncalc); tvresult = (TextView) findviewbyid(r.id.tvresult); for (int i = 0; i < 10; i++) { numbuttons[i] = (Button) findviewbyid(numbuttonids[i]); } for (int i = 0; i < 10; i++) { final int index; index = i; numbuttons[index].setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { if (edtnum1.isfocused() == true) { strnum1 = edtnum1.gettext().tostring() + numbuttons[index].gettext().tostring(); edtnum1.settext(strnum1); } else if (edtnum2.isfocused() == true) { strnum2 = edtnum2.gettext().tostring() + numbuttons[index].gettext().tostring(); edtnum2.settext(strnum2); } else { Toast.makeText(getApplicationContext(), " 에디트텍스트를먼저선택하세요 ", 0).show(); } } }); } btncalc.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { - 16 -

68 switch (rgroup.getcheckedradiobuttonid()) { 69 case R.id.rbAdd: 70 strnum1 = edtnum1.gettext().tostring(); 71 strnum2 = edtnum2.gettext().tostring(); 72 result = Integer.parseInt(strNum1) + Integer.parseInt(strNum2); 73 tvresult.settext(" 계산결과 : " + result.tostring()); 74 break; 75 case R.id.rbSub: 76 strnum1 = edtnum1.gettext().tostring(); 77 strnum2 = edtnum2.gettext().tostring(); 78 result = Integer.parseInt(strNum1) - Integer.parseInt(strNum2); 79 tvresult.settext(" 계산결과 : " + result.tostring()); 80 break; 81 case R.id.rbMul: 82 strnum1 = edtnum1.gettext().tostring(); 83 strnum2 = edtnum2.gettext().tostring(); 84 result = Integer.parseInt(strNum1) * Integer.parseInt(strNum2); 85 tvresult.settext(" 계산결과 : " + result.tostring()); 86 break; 87 case R.id.rbDiv: 88 strnum1 = edtnum1.gettext().tostring(); 89 strnum2 = edtnum2.gettext().tostring(); 90 91 if (Integer.parseInt(strNum2) == 0) 92 Toast.makeText(getApplicationContext(), 0으로나눌수없습니다.", 0).show(); 93 else 94 result = Integer.parseInt(strNum1) / Integer.parseInt(strNum2); 95 96 tvresult.settext(" 계산결과 : " + result.tostring()); 97 break; 98 default: 99 Toast.makeText(getApplicationContext(), " 연산을먼저선택하세요.", 0).show(); 100 } 101 } 102 }); 103 } 104 } 14~18행 XML의위젯에관계되는변수를선언한다. 15행숫자버튼 10개를배열로저장한다. 19행에디트텍스트에입력한문자열값으로저장할변수선언 - 17 -

20행연산결과값을정수값으로저장할변수선언 21~22행숫자버튼 10개의 id를배열로저장한다. (R.java 파일을참조 ) 28행어플리케이션의제목을설정한다. 30~38행 XML의위젯들을관계되는변수와연결한다. 40~62행숫자버튼 10개에대해클릭했을때의동작을구현한다. 41~42행 i 값을익명클래스안에서사용하기위해서 final 키워드를사용하여선언한 index 변수를선언하여 i값을받는다. 44~61행각숫자버튼에대해클릭이벤트리스너를정의한다. 48~59행숫자버튼을클릭했을때활성화되어있는에디트텍스트에숫자를추가한다. 만약두개의에디트텍스트가모두포커싱이되어있지않다면토스트메시지를띄운다. 64~102행계산하기버튼에대해클릭이벤트리스너를정의한다. 68~100행선택된연산라디오버튼에따라연산을수행하도록 switch 문으로분기한다. 만약아무런연산을선택하지않았다면토스트메시지를띄운다. 4 배운내용정리 5 학습확인하기 - 18 -

. 6 지식창고 참고문헌 참고사이트 - 19 -