CHAP 7. 메뉴와 대화상자. © 2012 생능출판사 All rights reserved 메뉴의 종류 옵션 메뉴 : 사용자가 MENU 키를 누를 때 나타난다. 컨텍스트 메뉴 : 컨텍스트 메뉴는 사용자가 화면을 일정 시간 이상으로 길게 누르면 나타나는 메뉴이다.

Slides:



Advertisements
Similar presentations
Copyright© Jeffrey Jongko, Ateneo de Manila University Dialogs, Custom Dialogs, Toasts.
Advertisements

User Interface Classes.  Design Principles  Views & Layouts  Event Handling  Menus  Dialogs.
User Interface Android Applications. Activities An activity presents a visual user interface. Each activity is given a default window to draw in. The.
@2011 Mihail L. Sichitiu1 Android Introduction Hello Views Part 1.
@2011 Mihail L. Sichitiu1 Android Introduction Hello World.
Android Tutorial Team 3 Jerry Yu Mayank Mandava Mu Du Will Wangles.
8. Notification과 Alarm.
Package org.androidtown.database.query; import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;
1 Announcements Homework #2 due Feb 7 at 1:30pm Submit the entire Eclipse project in Blackboard Please fill out the when2meets when your Project Manager.
@2011 Mihail L. Sichitiu1 Android Introduction GUI Menu Many thanks to Jun Bum Lim for his help with this tutorial.
CHAP 10. 고급 위젯. © 2012 생능출판사 All rights reserved 어댑터 뷰 어댑터 뷰 (AdapterView) 는 배열이나 파일, 데이터 베이스에 저장된 데이터를 화면에 표시할 때 유용한 뷰.
8-3. 버튼 천안천일고등학교 류빈. 1. 가장 기본적인 위젯인 TextView 를 통해 위젯의 일반 적인 특징과 프로그래밍 방법을 상세하게 연구해보고 버튼의 사용 방법을 익힌다. 학습목표 1. 리소스 2. 텍스트 뷰 3. 버튼 학습내용 2.
로봇 전화번호부 4/4 UNIT 12 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 뷰 홀더 패턴을 사용할 수 있다. 토스트를 사용할 수 있다. 클릭 이벤트를 처리할 수 있다. 2.
1/29/ Android Programming: FrameLayout By Dr. Ramji M. Makwana Professor and Head, Computer Engineering Department A.D. Patel.
Android Dialog Boxes AlertDialog - Toast
Programming Mobile Applications with Android September, Albacete, Spain Jesus Martínez-Gómez.
Cosc 5/4730 Dialogs and below 3.0 and above (fragment)
Import import android.graphics.Bitmap; import android.widget.ImageView;
로봇 모션 편집기 4/4 UNIT 25 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 에디트 텍스트를 사용할 수 있다. 아이템을 삭제할 수 있다. 아이템을 편집할 수 있다. 2.
User notification Android Club Agenda Toast Custom Toast Notification Dialog.
로봇 모니터링 1/2 UNIT 20 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Message Queue Handler 2.
1 Introducing Activity and Intent. 2 Memory LinearLayout, weight=2 LinearLayout, weight=1 TextView ListView.
ANDROID – DRAWING IMAGES – SIMPLE EXAMPLE IN INTERFACE AND EVENT HANDLING L. Grewe.
Copyright© Jeffrey Jongko, Ateneo de Manila University Editing ListAdapter Data part 2.
Android Using Menus Notes are based on: The Busy Coder's Guide to Android Development by Mark L. Murphy Copyright © CommonsWare, LLC. ISBN:
Styles, Dialog Boxes, and Menus. Styles Allow creation of a common format – placed in res/values/styles.xml – file name is incidental Can be applied.
CHAP 11. 액티비티와 인텐트.
Mobile Programming Lecture 7 Dialogs, Menus, and SharedPreferences.
Copyright© Jeffrey Jongko, Ateneo de Manila University Deconstructing HelloWorld.
Android Application Lifecycle and Menus
목차 한국기술교육대학교 강사: 김 영 준 ㈜헬로앱스 1일차 아두이노 제어 실습
Android and s Ken Nguyen Clayton state University 2012.
아주대학교 LifecareScienceLAB Android Seminar 3 rd class Android Software Development 2011/05/04 – p.m. 06:00 – 팔달관 409 호 아주대학교.
CHAP 14. 프로세스와 스레드. © 2012 생능출판사 All rights reserved 다중 스레딩 하나의 애플리케이션이 동시에 여러 가지 작업을 하 는 것 이들 작업은 스레드 (thread) 라고 불린다.
Android Alert Dialog. Alert Dialog Place Button to open the dialog. public class MainActivity extends ActionBarActivity { private static Button button_sbm;
CHAP 6. 이벤트 처리. © 2012 생능출판사 All rights reserved 폴링과 이벤트 구동 방식.
아주대학교 LifecareScienceLAB Android Seminar 2 nd class Android Software Development 2011/04/13 – p.m. 06:00 – 팔달관 409 호 아주대학교.
Уведомление пользователя ANDROID CLUB Сегодня  Toast  Диалог  Уведомление.
Android 基本 I/O. 基本 I/O 介面元件 在此節中主要介紹常見的 I/O 使用者介 面元件 – Button, TextView, 以及 EditText , 學習者可以學會: – Android 的視窗表單設計 res/layout/main.xml – Android SDK –
CHAP 8. 그래픽. © 2012 생능출판사 All rights reserved 안드로이드에서의 그래픽 XML 파일로 그래픽이나 애니메이션을 정의한다. 그 리는 작업은 안드로이드 시스템이 담당한다. onDraw() 메소드 안에 draw...() 와 같은 메소드를 호.
CMPE419 Mobile Application Development Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren
Fragments and Menus Chapter 4 1. Objectives Learn three different types of menus: options, context, and popup Learn to configure the ActionBar and Toolbar.
Lab7 – Appendix.
Android Programming - Features
Android Introduction Hello World
CS499 – Mobile Application Development
CS240: Advanced Programming Concepts
GUI Programming Fundamentals
Further android gui programming
Android Introduction Hello World.
Android Notifications
Android Widgets 1 7 August 2018
CS499 – Mobile Application Development
Android Introduction Hello Views Part 1.
Android Dialog Boxes AlertDialog - Toast
תכנות ב android אליהו חלסצ'י.
Android Introduction Hello Views Part 2.
Mobile Computing With Android ACST 4550 Alerts
CIS 470 Mobile App Development
CIS 470 Mobile App Development
Lesson 9 Dialog Boxes & Toast Widgets Victor Matos
UNIT 08 그림책 만들기 2/2 로봇 SW 콘텐츠 교육원 조용수.
Android Developer Fundamentals V2
動態版面 建國科技大學 資管系 饒瑞佶 2017/7.
Android Developer Fundamentals V2 Lesson 4
CIS 470 Mobile App Development
Adding Components to Activity
BLP 4216 MOBİL UYGULAMA GELİŞTİRME-2
Android Sensor Programming
CIS 694/EEC 693 Android Sensor Programming
Presentation transcript:

CHAP 7. 메뉴와 대화상자

© 2012 생능출판사 All rights reserved 메뉴의 종류 옵션 메뉴 : 사용자가 MENU 키를 누를 때 나타난다. 컨텍스트 메뉴 : 컨텍스트 메뉴는 사용자가 화면을 일정 시간 이상으로 길게 누르면 나타나는 메뉴이다.

© 2012 생능출판사 All rights reserved 옵션 메뉴 현재 액티비티와 관련된 동작

© 2012 생능출판사 All rights reserved 컨텍스트 메뉴 UI 의 어떤 항목과 관련된 동작

© 2012 생능출판사 All rights reserved 팝업 메뉴 뷰에 부착된 모달 메뉴 (modal menu) API 레벨 11 부터 제공 팝업 메뉴의 용도 오버플로우 스타일 메뉴 제공 서브 메뉴의 역할 드롭다운 메뉴

© 2012 생능출판사 All rights reserved 메뉴도 XML 로 정의 res/menu.xml <item android:title=" 새로운 게임 " /> <item android:title=" 취소 " /> 리소스 식별자 아이콘 이미지 메뉴 타이틀

© 2012 생능출판사 All rights reserved 메뉴 팽창 메뉴 리소스를 팽창 (inflate) 하면 실제 메뉴가 생성

© 2012 생능출판사 All rights reserved 메뉴 리소스 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }

© 2012 생능출판사 All rights reserved 옵션 메뉴 옵션 메뉴는 액티비티의 옵션을 설정하는 메뉴 버전 3.0 이상에서는 MENU 버튼과 액션 바의 2 가지 방법으로 옵션 메뉴를 사용할 수 있다.

© 2012 생능출판사 All rights reserved 옵션 메뉴 생성 사용자가 옵션 키를 누르면 다음의 메소드가 호출된 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }

© 2012 생능출판사 All rights reserved 옵션 메뉴 이벤트 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.new_game: Toast.makeText(this, " 새로운 게임 선택 ", Toast.LENGTH_SHORT).show(); return true; case R.id.quit: Toast.makeText(this, " 취소 선택 ", Toast.LENGTH_SHORT).show(); return true; default: return super.onOptionsItemSelected(item); }

© 2012 생능출판사 All rights reserved 컨텍스트 메뉴 사용자가 항목 위에서 “ 오래 누르기 ”(long-press) 를 하면 컨텍스트 메뉴가 표시 PC 에서 마우스 오른쪽 버튼을 눌렀을 때 나오는 메 뉴와 개념적으로 유사

© 2012 생능출판사 All rights reserved 컨텍스트 메뉴 예제 사용자 인터페이스 작성 <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Only I can change my life. No one can do it for me." android:textSize="50px" android:typeface="serif" />

© 2012 생능출판사 All rights reserved 컨텍스트 메뉴 예제... public class ContextMenuActivity extends Activity { TextView public void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (TextView) findViewById(R.id.TextView01); registerForContextMenu(text); }

© 2012 생능출판사 All rights reserved 컨텍스트 메뉴 컨텍스트 메뉴는 다음과 같은 메소드가 호출되면서 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle(" 컨텍스트 메뉴 "); menu.add(0, 1, 0, " 배경색 : RED"); menu.add(0, 2, 0, " 배경색 : GREEN"); menu.add(0, 3, 0, " 배경색 : BLUE"); }

© 2012 생능출판사 All rights reserved 실행 결과

© 2012 생능출판사 All rights reserved 컨텍스트 메뉴 이벤트 처리 public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: text.setBackgroundColor(Color.RED); return true; case 2: text.setBackgroundColor(Color.GREEN); return true; case 3: text.setBackgroundColor(Color.BLUE); return true; default: return super.onContextItemSelected(item); }

© 2012 생능출판사 All rights reserved 서브 메뉴 메뉴 안의 메뉴 <item android:title="file"> <item android:title="new"/> <item android:title="open"/>

© 2012 생능출판사 All rights reserved 코드로 서브 메뉴 생성 기존의 메뉴에 동적으로 서브 메뉴 public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); SubMenu sub = menu.addSubMenu("file"); sub.add(0, 1, 0, "new"); sub.add(0, 2, 0, "open"); return true; }

© 2012 생능출판사 All rights reserved 대화 상자 AlertDialog ProgressDialog DatePickerDialog TimePickerDialog

© 2012 생능출판사 All rights reserved 대화 상자 생성, 표시, 제거 메카니즘 public class DialogTestActivity extends Activity {... protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_PAUSED_ID: return new AlertDialog.Builder(AlertDialogTest.this).create();... } return null; }... showDialog(DIALOG_PAUSED_ID);... dismissDialog(DIALOG_PAUSED_ID);... }

© 2012 생능출판사 All rights reserved A LERT D IALOG 텍스트 메시지 버튼 ( 또는 체크박스 목록 ) 제목

© 2012 생능출판사 All rights reserved A LERT D IALOG AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(" 종료 확인 대화 상자 ").setMessage(" 애플리케이션을 종료하시겠습니까 ?").setCancelable(false).setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { AlertDialog2Activity.this.finish(); } }).setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { dialog.cancel(); } }); AlertDialog alert = builder.create(); return alert;

© 2012 생능출판사 All rights reserved 목록을 사용하는 대화상자 public class AlertDialogTest03 extends Activity { protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_YES_NO_MESSAGE: final CharSequence[] items ={ "Red", "Green", "Blue" }; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(" 색상을 선택하시오 "); builder.setItems(items, new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();}} ); AlertDialog alert = builder.create(); return alert; } return null; }...

© 2012 생능출판사 All rights reserved 체크박스를 사용하는 대화상자 public class AlertDialogTest03 extends Activity { protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_YES_NO_MESSAGE: final CharSequence[] items ={ "Red", "Green", "Blue" }; AlertDialog.Builder builder = new AlertDialog.Builder(this) builder.setTitle(" 색상을 선택하시오 ") builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); } }); AlertDialog alert = builder.create(); return alert; } return null; }...

© 2012 생능출판사 All rights reserved P ROGRESS D IALOG ProgressDialog dialog = ProgressDialog.show(MyActivity.this, "", "Loading. Please wait...", true, true);

© 2012 생능출판사 All rights reserved P ROGRESS D IALOG... public class AlertDialog4Activity extends Activity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.Button01); b.setOnClickListener(new OnClickListener() { public void onClick(View v) { ProgressDialog dialog = ProgressDialog.show(this, "", " 로딩 중입니다. 기다려주세요.", true, true); // 작업을 한다. //dialog.dismiss(); 작업이 끝나면 dismiss() 를 호출 } }); }

© 2012 생능출판사 All rights reserved 프로그레스바

© 2012 생능출판사 All rights reserved P ROGRESS B AR... public class AlertDialog5Activity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.Button01); b.setOnClickListener(new OnClickListener() { public void onClick(View v){ ProgressDialog progressDialog; progressDialog= new ProgressDialog(AlertDialog5Activity.this); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMessage("Loading..."); progressDialog.show(); progressDialog.setProgress(30); } }); }

© 2012 생능출판사 All rights reserved 커스텀 대화 상자 사용자가 마음대로 대화 상자의 내용을 디자인할 수 있는 대화 상자

© 2012 생능출판사 All rights reserved XML 로 대화 상자의 내용을 선언 <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:padding="10dp" > <ImageView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginRight="10dp" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#FFF" />

© 2012 생능출판사 All rights reserved 커스텀 대화상자 예제... public class CustomDialogActivity extends Activity static final int DIALOG_CUSTOM_ID = public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.button1); b.setOnClickListener(new OnClickListener() public void onClick(View v) showDialog(DIALOG_CUSTOM_ID); );

© 2012 생능출판사 All rights protected Dialog onCreateDialog(int id) { Dialog dialog = null; switch (id) { case DIALOG_CUSTOM_ID: dialog = new Dialog(this); dialog.setContentView(R.layout.custom_dialog); dialog.setTitle("Custom Dialog"); TextView text = (TextView) dialog.findViewById(R.id.text); text.setText("Hello, this is a custom dialog!"); ImageView image = (ImageView) dialog.findViewById(R.id.image); image.setImageResource(R.drawable.android); break; } return dialog; }

© 2012 생능출판사 All rights reserved 실행결과