290 likes | 474 Views
아주대학교. LifecareScienceLAB Android Seminar 4 th class. Android Software Development 2011/05/11 – p.m. 06:00 – 팔달관 409 호. Review. Activity Intent. Activity LifeCycle. Activity 간의 통신. CommActivity.java Activity. main.xml View. ActEdit.java Activity. sub.xml View.
E N D
아주대학교 LifecareScienceLABAndroid Seminar 4th class Android Software Development 2011/05/11 – p.m. 06:00 – 팔달관 409호
Review • Activity • Intent
Activity간의 통신 CommActivity.java Activity main.xml View ActEdit.java Activity sub.xml View
Activity간의 통신 CommActivity.java Activity ActEdit.java Activity new intent +Caller, +Callee getIntent TextIn getStringExtra TextIn putExtra +TextIn new intent startActivityForResult putExtra +TextOut onActivityResult setResut getStringExtra TextOut TextOut
Toast • 작은 팝업 대화상자 • 초보자들에게 디버깅용, 학습용으로 아주 용이한 출력 방법 • 변수 값을 수시로 찍어볼 때 등 • Toast.makeText(ToastTest.this, "잠시 나타나는 메시지", Toast.LENGTH_SHORT).show();
Log • 개발자를 위한 디버깅용 메시지 • Eclipse를 통해서만 확인 가능 • LogCat을 이용하여 확인 할 수 있다. • 다양한 메시지 필터 • Log.v : verbose • Log.i : information • Log.w : warning • Log.e : error • Log.d : debugging • Log.x(String tag, String msg) • tag : 사용자 정의 메시지 분류 • msg : 출력할 메시지
Option • Database File I/O Preference ANdroid
Option Menu • JAVA로 구현 • XML로구현
JAVA로 구현한 Option • 다음과 같은 순서로 동작한다. • 1. MENU 버튼을 누르면 액티비티의onCreateOptionMenu메서드로메뉴를 생성하고 보여준다. • 2. 아에템을 선택하면 액티비티의 onOptionItemSelected 메서드로 기능을 수행한다. 1 2
JAVA로 구현한 Option • 1. MENU 버튼을 누르면 액티비티의onCreateOptionMenu메서드로 메뉴를 생성하고 보여준다. • booleanonCreateOptionMenu(Menu menu) • menu :빈 메뉴객체, 여기에 add로 항목 추가 • MenuItem add(intgroupId, intitemId, intorder, CharSequencetitle) • groupId : 항목의 그룹을 구성할 때 지정, NONE(0) • itemId : 항목의고유한 ID로 중복되지 않아야 한다. • order : 메뉴의 순서, NONE(0)이면 추가한 순서대로 나타난다. • title : 메뉴항목의 캡션 문자열, inttitleRes로 대체 가능 • SubMenuaddSubMenu(CharSequence title) • 서브메뉴 추가 • 서브메뉴에도 항목 추가 가능 : add
JAVA로 구현한 Option • 1. MENU 버튼을 누르면 액티비티의onCreateOptionMenu메서드로 메뉴를 생성하고 보여준다. • add로 생성된 MenuItem들의 각종 설정을 변경할 수 있다. • MenuItemsetIcon(inticonRes) • MenuItemsetTitle(CharSequence title) • MenuItemsetVisible(boolean visible) • MenuItemsetAlphabeticShortcut(char alphaChar) • MenuItemsetNumericShortcut(char numericChar) • MenuItemsetCheked(booleancheaked) • MenuItemsetEnable(boolean enabled)
JAVA로 구현한 Option • 2. 아에템을 선택하면 액티비티의onOptionItemSelected메서드로기능을 수행한다. • booleanonOptionItemSelected(MenuItem item) • item : 선택된 메뉴에 대한 정보를 담고있다. • 예제에서는 item.getItemId()로 itemId로 선택된 메뉴를 구분한다.
JAVA로 구현한 Option • 실습 • “OptionMenu” Project Load
XML로 구현한 Option • 다음과 같은 순서로 동작한다. • 1. MENU 버튼을 누르면 액티비티의onCreateOptionMenu메서드로생성된 메뉴를 불러오고 보여준다. • 2. 아에템을 선택하면 액티비티의 onOptionItemSelected 메서드로 기능을 수행한다. 1 2
XML로 구현한 Option • [res] – [menu] – [menu.xml] 디렉터리와 파일 생성을 해야 한다. • menu.xml 파일에는 항목들이 미리 설정되어 있어야 한다. • onCreateOptionMenu에서는 getMenuInflater() 메서드로menu.xml 파일을 불러온다. • onOptionItemSelected에서는 menu.xml 파일에 정의된 항목의 ID로 선택된 메뉴를 구분한다.
Database • SD card에서 File I/O를 이용한 파일 관리 • Preference를 이용한 데이터 관리 Database
File I/O • 1. SDcard의 경로를 설정한다. • 2. 파일명을 설정한다. • 3. 파일을 연다. • FileOutputStreamopenFileOutput(String name, int mode) • FileInputStreamopenFileInput(String name) • 4. 작업을 한다. • read() • write() • 5. 파일을 닫는다. • close()
File I/O • SD card의 상태 확인하기 • Environment.getExternalStorageState(); • MEDIA_MOUNTED, MEDIA_UNMOUNTED • 디렉터리 경로 생성 • File dir = new File([SD카드의 경로]+"/dir"); • dir.mkdir(); • 생성된 경로에 파일 생성 • File file = new File([SD카드의 경로]+"/dir/file.txt");
File I/O Stream • 파일에 내용 쓰기 • FileOutputStreamfos = new FileOutputStream(file); • fos.write(저장할 문자열); • 파일로부터 내용 읽기 • FileInputStreamfis = new FileInputStream(file); • byte[] data = new byte[fis.available()]; • while (fis.read(data) != -1) {;} • 사용한 파일 닫기 • fis.close(); • fos.close();
File I/O Buffer • Buffer를 사용한 File I/O • import java.io.BufferedReader; • import java.io.BufferedWriter; • import java.io.File; • import java.io.FileNotFoundException; • import java.io.FileReader; • import java.io.FileWriter; • import java.io.IOException;
File I/O BufferedWriter • BufferedWriter사용 File root = Environment.getExternalStorageDirectory().getAbsoluteFile(); if(root.canWrite()){ File file = new File(root, [경로 + 이름]);W try { FileWriter writer = new FileWriter(file,true); BufferedWriter out = new BufferedWriter(writer); out.write([저장할 문자열]); out.close(); } catch (IOException e) { e.printStackTrace(); } }
File I/O BufferedReader • BufferedReader사용 File root = Environment.getExternalStorageDirectory().getAbsoluteFile(); if(root.canRead()){ File file = new File(root, [경로 + 이름]); FileReader reader; try { reader = new FileReader(file); BufferedReader in = new BufferedReader(reader); String massage = in.readLine(); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
Preference • 응용프로그램의 설정 정보를 영구적으로 저장하는 장치이다. • 1MB 미만의 저용량 데이터 저장에 유용하다.
Preference Import • 사용하는 라이브러리 • import android.content.SharedPreferences; • 선호설정 생성 • SharedPreferences.EditorpreEditor; • settingActivity = getSharedPreferences(“str", 0); • 설정 값가져오기 • intsettingActivity.getInt(String key, intdefValue) • String settingActivity.getString(String key, String defValue) • booleansettingActivity.getBoolean(String key, booleandefValue)
Preference Export • 사용하는 라이브러리 • import android.content.SharedPreferences; • 선호설정 생성 • SharedPreferencessettingActivity; • preEditor = settingActivity.edit(); • 설정 값 내보내기 • preEditor.putInt(String key, intValue) • preEditor.putString(String key, String Value) • preEditor.putBoolean(String key, booleanValue) • preEditor.commit() • preEditor.remove() • preEditor.clear()
Team Presentation Software Development
Team Presentation • 구현 1주차 • 서승환/이영권 • 이기영/최성원 • 설계 • 김영식/임동진 • 주제선정 및 분석 • 권만석/정선홍 • 김유성/김재호 • 서우람/유영욱