You are on page 1of 39
SRB BA Androi dees 5 2015. Android? 5] B¥ 7981-1217 FRPMRILA fy ARABI MBA | S808 RBS E—Android If) Wa RE Sone Android £4 8% Git 8.405%: SKA ADR, SQLite FASE 5 ContemProvider # A.64 4-H FH. CECE [ED anaroia sis tate DAL MEL CTR TE AA BIER AP AS HR AE Ef A EO a Ah SCP UA BLA AT EC (ety MA BASE WEED. Android RI Lt Asal NARSE. 1E Android 1. STATIS DV LCR BU COUR Sct) ASMP BT AGA. HRT, Android ID PREG Bb AE Dr BRP PEE RL 17 RE FHA SE AC 9 3 HS SIT AE FRU RUB ANE 5 FT TECHN CALI HEL ASA SE eR ECE A Jak 4 Android ‘{1, Gi HEIR #44 7 47 SharedPreferences, fF 4Fh%. SQLite BHM Arak. ‘Mee (Content provider) All Hs, HLATKEE A ESTA. [O) seeetmze 19 4: —ShareaPreferences #8 Ff Se SP47N(F EL SharedPreferences, ‘ts J Android YEQE FACE itt (0) MUR RET RA — APL, FAG, MEAN TA AACA. GRIMY TL 24 AB 5 EL ARR UL Dy oN Ph, SARA DIA I UIE A, FR Saas 1. BS ¢E Eclipse 4) JF ex SharedPreferences iL, FSET F Bia CL) Bra A. 2K Fi File +New— Android Project 1. (2) CORPLIATEDETTHEN'. AEF Create project from existing source Ji, (3) Map, 4B) ex SharedPreferences SiH, a Yabrwe BGR BAPE LI—Android Aaa fateTE SURREAL SAE Ha MPL Be Brak 2 8ose Slat PL HL, MPa BI TAG GPA 8-2 Fi aS, Ak 4S FE YA J fe LAB: main.xml Sof EA tt + ASM Fras: © meek ign 2 Botmrrtareese ne ot fone Seated. ee .RE1 WIREAiRH Andveicdveon/apk/ee | | | | Android: text. EditText HM ABR: J Fi fEHH commit() 7248 38 AY (RAF. SharedPreferences {& ( HAE x 7? Proving SharedPreferences £4 XML i AVOCA AB ERATE, Ze DDMS 4H * | File Explorer 4/8 JF 3 /data/data/ishared_prefs F, VLE Wik fl, LL 8 — 44 fi SETTING Infos.xml Xf, 8-5 fir : 7 e = ¥ AAAS. Sharedireterences 3 f¢ Google Android FA 115508 SGA, WREATH, BRI A: <2xml version="1.0" encoding="vtt-8" standalo: smap> a Pasaword coak¥s1 "RAITT PLE getXXX | AL, JK SharedPreferences & iF I FW ty # to, EW RATHLM getString|i AL Swing HAL _ Prferenes R oa = re Hem, HEA, HEE — RAB TMTZUIM Shared Preferences 4¢ fi Ay sC4b AY Ar (Bl. (URAL UE A 1 BEAT PRE. OTE APES AE, OPEL DT SAT ILE, INURE SPATE AH. AMEE Java 9K VO A Pe R(L, 7E Android +", Het J openFileInput Al openFileOuput Wika M Bee FIRTH. RIA MAL aS, BaF fo: TLE_NAME = while. tmp"; // fA BARES HATES ream fos PRIVATE); //WitE4e ctStrean fis ~ openFilefnpue (PT se ae: LA HOSTS IF FERIA Ea BSCE, URIS ED 9 FL aR HE ths eB 9 hy PEDERI an FileOutputStream IHREN ICME AM ECE, Android & (1a) 018 a She ZERR UATE BURL OR 22 it BO EAN Ae, RASS APA PT I EE A AY AT DLE BEA A Context. MODE APPEND. BRIM, GA] openFileOutput % 14) LEW SER fev we t Bo WMA ARERR, MREEATCA AMA PEER, APRA Content Provider 38% F Content Provider He #448 9 ABP 148 RED? ok 0 a8 BL Ge — BS A ER HE ol to, — AL AL MAR RS A RG TUL LAA MP3 RH, RHE ECE ADA LIP iy resiraw/ TE, te mydatafile.mp3.. Bb 2% TULA (5 Oy SL ALP GH] getResources RH IRIE openRawResource 73k (FE ABER SEA AT AAR AF. SL a oT Bi a Bie iirc Se AS TPE. Pavan = getResources (}1 myfescucces. cpenRavResource(®. ra¥.myfLlename) SSC Hb, Android MHROET 4 deleteFile, fileList FW IT. 140 BOR BASSE —Android HRB PRE (LY sri a noes ae e—soune oe a zt 8.4.1 Android Pp BBE Bee TERE SPEER YT Android fifa ARAYA, PER Android RETIN 9b 4 Ati: Bef. ALP aD DOE 1 COTE FP eB OP Rk AE RUE TEMA, HPO A CEE ee SQLite BURIE ST. SQLite HE Android [tail — 4K AER BOE, COREE SOL it, “EAE AMEE RAR ATH AK ME ARMA CLL, ATCC RENE MY PERIL, AECL AY CA EET BEB, HH, ck. ft. LIK PA RATT AEB 0 thf) BRE SAE oan ff HB ACS Pe TL HR Ae co BY i AACR PT HH Huo Ce a ae ps aE of) APB RACE A TPB © Life) (21) Android #20514 TE, File explore, 7 Fi AMM RAD as “Hf 1 Sa Be © nfo ENN LogCan eB AUR td TEM Hikes 1 8h 4E Eclipse 1, 21 FF ex08_1_SQLite JH, FLAC UR MIR. © BR PTA. He Mu) File-~New— Android Project it, © CEBVARIUELI IVRPIAES. LEE Create project from existing source iil. = PPAR, FREI exO8_1_ SQLite THN, Ahi Mite. HEMP LR EG IANA 8-6 His. 2 Boe Neca. FRAT LLB PONY 8-7 Bhai. IRS PLIST ALABAE main.xml X44 "Hy 42-7 LinearLayout “i } B84 TS 4 Button, 22 SQLiteDatabase? ~ 4 SQLiteDatabase ty 5481 1K # J —4S SQLite Oh HABIE Fvmig | Sei, AANA ATT SQL 1841. APMC TIN. BI. . BLUR HE. LHRLSHR, REM T-AEMRREKHH, FLED KR 184 Pee 142 Google Android F417) 5 S2Az Fe 08 saat =H cam eoetndrosd sutite + LD Aetavitgein jar = Mi todeend 1 +B com soudntrond SWLite Gh pdees Bani fest. ARs FARES {1 232 SQLiteOpentielper ? HABE PAT TA tak PRE — A kN RE Ek — HE, SEA AREA Bi AUR TE Ee AE 9G ALAR AW HH Sb et WritableDatabase() AU# getReadableDatabase()7 EAR, MRAM ARB, MA Android KF Be BE —AMABIE. SQLiteOpentelper — MERA, KALA WH BM A FLRAE fy 3 Pa. SLC Mh ho ih Piva # onCreate (SQLiteDatabase): (:RURIPIB ACCENT ARR IIE PHT TK Ti RE © onUpgrade (SQLiteDatabase, int, int): “4 MOH HE RIT. Android FRE Emly HART ik. BUR IER Ok I TORO BAe Befie. neat PMLALit © onOpen (SQLiteDatabase): ise “PT PRET) ARATE Ac PEACH F Bin iE, MLA AN HLS Main ei RiLIX ALA. DatabascHelper ME /K SQLiteOpentHelper » HL Databaseiteiper Co super (context, DRM DetabaseHelper extends 5 context! { FNAME, null, DATABASE BSR BSS —Android Me FRE override public void onupgrade(sviitepatabase db, int oldVersion, int newversion) ( 1} (CHS aR RE + DatabaseHelper £4bK J SQLiteOpenHelper ¥. Hf HAY F onCreate Fil onUpgrade Ii. © fi onCreate() 71 Bid MCTRA Hitt Ae SQL HEA, TWH db.exeeSQL(sq))bM4T SOL iff Ye i SQL Hit) TRAE kT SOE HE = Hii AER TMM, PRLTRICT LE onUperade) fi HH 2 FHA iol a 4. OH RANT Pit A 2B i eae A, RE RA HORM “PAY diary 2h, WA CEE HTAY tithe aR Ay MOIRA. MPS 8-8 fips Mati MEI PT T MUTE onClick Jp id, SRST 1 RAF AUP inserthtem Aids, St ARTE HON FBR AS: void in ctitem() | nOpentelper.qetWritablevatabase |); String sql sert into * + TABLE NAME alves (*haiyang’, "nndgold Ree ° ENE + TITLE +", " + Bopy z+", "+ sony ‘ SotTl tle SHAMS HE) 5 we ARNE: * SQLiteDatabase db ~ mOpenHelper.getWritableDatabase() ik 41% 4) 1 vt A SQLite BFE, AU RUE EE TEESE, EB mOpenHelper 426 i Fi $8 1 8 HEE. SRG USE, NG AB oT AE sql fil sqI2 LEFT HIIERI TA SOL TE(Y, ALA SQL ISU NAAN AR, ay Las HCI. PAI HE REE Android JiR. SFLU SQL i Ay Ha ae ASUL TT PMH Sra. © Logi O HSH ATMS iP, HALTED MEE Info Bal, PEGI LogCar TH RIE RAT SEAT TAN BY Sh + db.exeeSQL (sqll) ittyf SQL iB ty TaMT. 143 Google Android FAS) SS At Android #47 ERA! 44 Povsaig | Android 3 #4 5 #4] ORS, 4522 Verbose. Debug. Info. Warning. Error, SRAM ER A Sb ARM ER Info RH, MH OR we aT t ot Necsage D Ednivixn Ge trem 16938 anjects PRIME? SOL ib PIRABRIL ALA try coteh 18-4 PER | (URES Li. SE catch MSRP SE Ae RATED AE R, FA mT UA RRA. P, Ree +. RHP RRA 5. Bab SANT A il CAs eR. 2 EE TY tithe Di A 4 URE Ze SP BE, UA AIA TA. IB fe NAK A WB, LOPE) 8-10 Pras. ie Meda, PARUT 7 AAOTRE SLY onClick 47 ik, SRSA TT PLR FEE ALAY showltems J ¥:, FLOR ui F Biase private void showltems() | sgLitepatabase ab = ni String coll] = ( TITL 1G ROB A Cursor cur = db.query (TABLE NAME, col, null, mull, qull, null, Integer num = cur.getCount() setTitle(Integer.toStringtnum) +" $42 » Se ACR: © SQLiteDatabase db = mOpenHelper.getReadableDatabase( )iit 1] 75 BAI — Fd 5 HY BIE, © Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, mullyids 95 tr if)2) 4) AS ‘Cursor “iF. EA Cursor Hine) (1% PEA TABLE_NAME “%+]'1 07 4745). query() FALLS ETAL, CEI RATT AU F Helper .getReadableDatabase () 7 BODY | pully; ROS Bahia eee —Android MIRAE oR PSR F, HOue Rk Pol. 200% FaL TABLE NAME, Hi "diary". A BL RTA BE FP A AN A AER Md aR A title, body. PRA THEI T > 91) (8% 7 CRUE Hh BER a PF BHY selection, HF SQL HtU i) where ABA}, WARE SLIT Mea, DZ ah AGA) null. © PUSHY selectionArgs. ¢F selection M5, M41 AIMEE) “2”, UAde selectionArgs ENF 21 UF selection Pi] “2”. © RAP SHH groupBy. cE CAAT AT RARE APPEL GAL ml 86H) AS SPA © DAP SRH having «AST SQL ity 44 fT having S84}. © REP B HON orderBy, HUTA ELM IRIE LAL AS ie BEPETE, S BERL AD mu BE AS if BEEF © Integer num = cur.getCount()i#tUillit getCount() 2778, of L428 Cursor “4+ PART ey | f¢4 3% Cursor ? WAssiR | Cursor Android 4 R—AE BAO, Bit Cursor A] AULA AMA | Ee ROG RE TALES 6. BAD SO LAMER ACRE, URINE, BUN ey DLE SCE DEREK Clie) EC BRAT IC “F¥kas. Wnfd 8-11 Aras. SACRA te He EAL, ARE ES Ta. Pl eee AL iy TIMMS 8-12 Dy asttl Feit ART mba HIER FUR AF du fy BR BG tA ie aR (eI. PEAT TM AE LIN onClick Wik, FRET bi BED ‘ deleteltem 772, J(UHiN Fir as pr void deletertem() ( Database db - mOpeniielper.getWritablepatabase (1: 154 db.delete(TABLE NAME, * title = ‘haiyai 145 Google Android FRAT }5 KA ithe Aheiyang B— RIZE; ty (NEE * db.delete(TABLE_NAME, " title = ‘haiyang", null)i# 4) ABE e RUN AE I ARCA title BW Yhaiyang’, 162, JPR. FRATAL delete A 3kA8 SHE ATE F Sheil 2 ILM He 1 + BNR, AMEE SOL HEI” NE CE BH 1. AE TABLE NAME, (23/2 diary. HY where fh. tit ALAS T AMBRE fh 1 BARS EEE EI CE see a Litas 2” 7. Hee He BBR ee, BUTT OUI diary cok Meth de. fn} 8-13 Wak. Bia BRAT Fa CE CAG FEA SBR, FAR - 7 = Fan FP as a B-13 IRM try | Sei title ("HER MOAR } , SURE: PARTIE —-PasERO ABR EAE SQL. HEF. PATI UE ta) db.execSQL (sq). 8. BAS See a Hate, Pe iat ALE RRT Yh PME, EAL RGR, A 8-15 Bias. Bide AA RA SR fe — AI, Sa Ea Pable() ( Opentelper getty TABLE + TABLE + Boy +” text ATA ALT AES HIN SP AG. BRAT he BO a Me ReaTCALL, OPS 8-14 private void 146 BOR BahlFSCH—Android mace imHE Se CEE © sql BAL NTis TA bE SOL ih, ieee kB de. © db.execSQL("DROP TABLE IF EXISTS diary")ifi fydac. RARE diar DAD te Led AAI 1S BE HH BR SK TD 7 ERS © dhexecSQLsq) #i HUF SQL iT, HEE 8.4.2 sR SUES —AicAT pl 4b AML, BRATIAL Android RAE CAM SQLite RARMEMEGT FAVA EA. Ce te SH Mi ie. PEAS A. Aa RUE TON, BRIT MIE OR TA, BU F156, PUL ORR EATT LMT. (ep Ta. ERA AMEE A TIM. HB. ok. PER hee i TL REPRE 1) MH BBE ListView “111. JaLR ListView (ARH. BRR MC HRM. AAS OL, PE Ml PAI AY Paes © tifo) +t DatabaseHelper AI SQLiteDatabase HE, UM iL ERA Hi) BAR APE Mn Ty LF © fife) AJHY ContentValues 2 {0 8 SUUIE SQL ii ty ib 17 ACI MEIER ff © ‘c:foJ 2H] SimpleCursorAdapter #81 ListView ft: 47 ListView ff) 5 [GAUSS RN FT 1 B-e 4 Belipse "F491 J] exO8_2 SOLite JL, FUSE Laan F ok ee. SUE 147 148 Google Android FFA 115 Lak + WAR ALL. its File New Android Project Ji AFA MAD ESP, RAF Create project from existing source i. oil, 425i) ex08 2 SQLite HEH. Mla Milas. PEPFAR) 11 RSH HY oP 8-16 Bias. 2 Rob ARAM iT — Fa ROE. He ee LAY 8-17 Bios. RE UL) Sear re Fe FEIFAL A: Activity Jk ActivityMain,‘@ -7* ListActivity, AE KURI Ai) XE diary_list.xml. AY ListActivity M448. vB RIB 7 WT ListView (SPH. ibe) ATE F DiaryDbAdapter 4, i< AHA F Databasetlelper Fl SQLiteDatabase 38, (ERLE BGI PEI BRE I Se AT tt DiaryDbAdapter (HED, BEE LT OLE IL Rs oH. Bom e Ba Ab 1A, «© Databasetielper fil SQLiteDatabase ff © Context Efi. DatabaseHelper A(Asis LA MALE ORE, SLA LIR-MO| FHL, ARATE onUperade Hit TRAC, SURO PDR: el: ih: private & batabs per extends SOLiteOpentielper ( Databasentelp | super (c text) ( \SE_NAME, null, TATABRSE VERSION); id oncreate (si ateDatabase ab) ( B8S Basse e—android WRIT RTE db .exe S01 (DATABASE_CREATS) ; nt oldVersion, int newversion) DROP TABLE LP EXISTS a ontreate (ab): ' CAE: ¢E DiaryDbAdapter K#, (ash HSE CLAP He IE. © open), iM yy OAR RID FART IA A POR Ee ae SET) Wb sei 1PL ny aE. © close(). UNH Arid, DatabascHelper 2 CHT UIE To. * createDiary (String title, String body) idist -4> title Al body “7 BRAM FE 4 faa — Se aR. © deleteDiary (long rowld) i&:Lic ati) id, ABR SR ME} OS AB AR ia. © getAllNotesQ fF) diary REM AMZ. IF AVL 4 Cursor AYE TB EL. + getDiary Clong rowld) Jct iG RIT EHR id, A FIREIN Rig. * updateDiary (long rowld, String title, String body) Yr 1-8 id %Y rowld MSR ica} (PH SE Ei title Al body “F BLIM AYE. t+ 4X ContentValues £? ContentValues 4 Hashtable RAM, CHARA AM—MES Hal, ee CMA GAA HHS —* String KB, MEM RRALA, Paani BUM — BAe LA, RAPA EL SQL HCE PH ABE. SOL ifr Fit ee ae LER IAN TEES HTT AREER ME SRR A UE IN, EEC FRACS A ALA #1 4 ContentValues (SEH, PTA BRIE, FLA ARIK Bias: body) { tentValues 0) put (KEY TETLE, initialValues.put {KEY_BODY, hody] 7 ‘alendar calendar - Galendar.getInstance ()+ # created = calendar “tcalendar.get (Calendar. VON! Ycalendar.get (Caleadaz.HOUR OF DAY) + sated) + return mOb.ingert (OMTABASE TABLE, null, initSalvalues); YS (CLARE: © ContentValues initial Values = new ContentValues()ifi U3#814L. 4 content Values * initial Values.put (KEY TITLE, title) iffy) % Al A} NH) 5/101 ee BEA initial Values Lt. * mDb.insert (DATABASE _TABLE, null, initialValues) i570 GH AARNE, RH ART 2S HTL AALS id a FUE A AI Ss 149, 150 Google Android FRA] SRA AEG APICARNUIN IR, FEAL LAY ContentValues (KC ASBL A, FLA RESIN FBT: wolean updateDiary(Long rowId, String title, st n nrentValvea (+ ing body) { sgetInstance (1; |) null) > 07 eR: BLA AER. 4, $B BLAIR ABUT + FM, CNL) Activity Lb ActivityMain ‘BAT Ply menu Feb ea At 8-18 Bias ~ aw Fill. af© 8-18 Bit menu fee HUERTA 7 AEX menu FES). Vly menu HWA FILM Mb BETTIE: onMenultem Selected nM. FLAARMSLI Kia: Menultem iten) | 1D: -dGLetebiary (getListview() .getSelecteditemId()); renderListview (); ) | returminiper -orMenvTombelectud (Zeaturerd) item ) (CURR eG RL eras Ln fed He eH AGA, 224A FI createDiary()i i. AHAB sky 2447 mDbHelper.deleteDiary(getl ist View().getSelectedltemld())i fo), ECU IR UU AF PR © renderListView()i8 fy) 4 Bi xt Ft MIA 4 createDiary( ii BMW (SCBA) BFA: | private void createDiary() ( Intent 4 ~ new Intent (this, startActivityForResult ( , tyDiaryedit class); CREATE) ; BBR BahlS.A lH —Android ABORT ARE Wa (URE © PLM FP iment, i7> intent HE BEPERI ActivityDiaryEdit © RTA intent, FFAG BAL. 5. Ha (ff ActivityMain 4!, 47 % MJ 77 48H B) T renderListView()P Me. 7£ onCreate #1 id Hi& PAMUGL AS ListView. “4 ListView ZACH 4b et, BUA, IMB SA ic ae aM fF ie AIL. RATATAT WL BT ListView, Fok @ - Pubes i J, FAC tat FRIAS: prLvate vold renderListyiew|) { = nbbHelper. getalinotes () 7 agingCursor(mDiarycursor! : from = now String|] { DiaryDphdapter.KEY TITLE, DiaryDbadapter.KEY CREATED }2 int(] to = new anti] { Rid.textl, Riid.crmated }; = new SimpleCureoradepter (this, ut-diary row, mDiarycursoe, from, to}; tListAdapter (notes) Ta CSE: # mDiaryCursor ~ mDbHelper.getAllNotes() iff, Heh) HSER SP HOT ATE, des BULL Cursor (XE EAE « © startManagingCursor (mDiaryCursor) iff), FRAT AHR) Cursor 24% Activity RAM, PEMA LE ASEH HORS IHS, Ee RRS, BON RARE DUBNA Cursor DWE Vie SRT ACAI EIT He HT Ae HE WE Cursor. © String] from Lids CT ListView ‘if: HIPS 4 SSH AE AA Rea FE ARIS Be EHR © Hl SimpleAdapter (0 int{] to HLA JES View (HYHEEH. XH View fil AE Text View Bk 3 ImageView. 4" View ALU) id (ABS Aa, Ll Android.R.id.text! - * SimpleCursorAdapter notes = new SimpleCursorA dapter(this,R layout. diary row, mDiaryCursor, from, to)if# fF) 4 SimpleCursorAdapter , 3 (CMLL PAE 728A BE. + ABE Context. + 1 BKOy Rlayoutdiary row, ‘E-IPTE diary rowaxml Xf 442 SUR) Layout, 34 Layout Uji ListView “4 Titi Fal. © SMG Cursor. © RU eB EEL, ER LULA A, ROA eo AE 0 HLH IAG TextView 8 % ImageView “4'1", RIL SBOE ListView S02 8 iter a AE Be BPEL AE(N TextView 4 ImageView . * setListAdapter (notes) if 4J#$ SimpleCursorAdapter ll ListActivity 4144 ListView 46a é Ay Pu HEAT tA Seb aa LA Google Android # ANT SIAR {3 SimpleCursorAdapter 2 267%, KA LMMiT ArrayAdapter fv SimpleAdapter. fo: 118% tl, ! SimpleCursorAdapter 44,2 4 4 Adapter. ArrayAdapter { #i#%.—/S°F TF BMAD Oy Bowe | RABI A FI — 7 ListView Tf 3312.94 SimpleCursorAdapter #4, Cursor !E38 | FY BUA Ie) ListView 4H". sit SimpleCursorAdapter FLUE HB IE 4 op — 9 ! BRAY ListView 2 — BH. FATA Adapter RAL. oR Ao M AEA AT AL Ta 6. BAS Mati i In A HA, RPS TT IE FA) 8-19 Rae PYLIMRTIVAY Activity JE ActivityDiaryEdit, AI 04 kA CPESE diary_editaml. 8) Pik Pi SCH GTA T LinearLayout, TextView #l EditText, IAS UPS URL, AEH ANT BEIA, Lib FARTS: s i a Rle-19 aie REiC RH sei: HE. Si AB ABE Button {ell BBR BFS OH—Android MARIE SAUER AWA. MGT, Cah BVMAR ES RDS — BAR SL RERUN, NCTE ARETE FH FR CIPT PACE RCL SIB SD AE HT BS HEU onClick 77 FARRIS UF Bas public void onclick(view view| ( String title ~ mfitleText.getText () tostring ()+ MiodyText .gatText () tostring )z Bf (mRowld {= null} ( mDbHelper.updateDiary (mRowtd, title, body! else nfblielper.createDiary (title, body) s Intent mintent = new Intent (); setResult (RESULT OX, mintent) | Fist Ye USER © PP CIRAL BditView Tino 8ae . Hi mRowld % null, 7 LUKIF mDbHelpercreateDiary (title, body) if fyAS BL ER TEAL Pe # setResull (RESULT OK, mintent) if (#2 418 11(f7. LAR, FALE) ActivityMain, 3417141 Uys Me onActivityResult, AAA CHS protected void onactivityRosult (int requestCode, int resultcode, Intent intent] super. onket i renderLi ' Se ERE © EIN Med, RAND READ ListView RE PIURT. SPI MURA BSE atl. 7. Soe MPL ListView EWA SU, AT DM MIA RAP RY BE rail. FLAS HINILLA - F ActivityMain “S*]"/ onListltemClick J713fCES: LyResule (sequestcode, resulccode, intent): View( TEA TARE, TK, protected void ont Viow 1, View ¥, int position, Long id) | Super.onbistTeenc]i | ion, id); Cursor c = mblaryCursor? E.moveToPosition (posit ion) : Aovivitybiarysdit.class): BY, e.getstring (c bartactivit Se CREE © c.moveToPosition (position) if H)4§ 46 Cursor “i fu ftitt & Fl position {hf 14> position 154 Google Android FAT SSR FEB PIE — FEET EH I + Intent ew Intent( this, ActivityDiaryEdit.class )ii Hai —“MBEAEA| ActivityDiaryEait (19 intent. © putixtra) 277) A BONG Be (GiB SS! iment “4. * egetString (c.getColumnindexOrThrow(DiaryDbAdapter. KEY TITLE)) #1384 #4 415) Bh title fT * c.getString (c.getColumnindexOrThrow(Diary DbAdapter. KEY BODY)) #4 #/is Hadi 9) 4) body ffifit- startActivityForResult (i, ACTIVITY EDIT) iff) #12) intent, 424F Activity MUlbbH. dit (1) onCreate() id Hy {R 8: gotextras(); if (title != mura) ( mfitleText.sertext (titlel ; 1 LE (body t= 2 | mBodytext.5 , 1 (CRS: © ALL ActivityDiaryEdit ++ Activity HHI intent TELERIK, at iL Laie (ko AACA intent LUA) extras ASSP BE AT (ETM. OE AMAR ALTE MARL ae IP BE OP (Ry GRANAARM intent | DR AeY extras BM. AILATE ActivityDiaryEdit 14 SHLiL MIB extras JE #599 null, 0) LLL GJEWB HY intent [1204 © Mextras 4% null, 22D extras HLH BRK. 8. ANS TERRI ER, 1 eno Cop Beams Pte ok ABLE FAL FED, af DOTA A ACA UU WISE. tn Pe] 8-20. FA 8-21 FPG 8-22 Bras. SUH FT onMenultemSelected "ft #UF3 4 F Hea: ae-2 b mbbitelper-deleteDiary (gethistView() .getSelectedttemtat)): renderListvLew()7 1 CREA: © getListView ATA SRK HIM ListView | FH. * getSelectedIterld) 1714 615) “iii FATA WY BE TOL IPY rowle, LLB ALA Ae GE fe Ba Hey tit id OR Bae R—Androia Sha Te eee 2821 RGA 2 B22 AIRE «© mDbHlelper.deleteDiary() J }2:4H 2: Boa AE | (3 — DEE = © renderListView() ih Gi 1 UAE Mb iB FEE. SERGE ALIGN BR, $e PORES 2] contentProvider, ‘EAE Android Bi, ABE 6S). TT ALARA EH AAS A See AB LEAR contentProvider HiME? « CEQ seven —ContomtProvider #22 8.5.1 #152 ContentProvider {hay C98 6H, HEN TSU Android AFF E48 4 84h, «Activity. SALTS} HE. * Broadcast Intent Receiver © Servi © Content Provider AF Actwity AHA View (IAB, ULE A RETT TRENT, A a, J Android Wii FAH Sb 4 1985} ContentProvider. 1. 4t&# ContentProvider Android £4 ASE ASU PETE SCRA APY, DEAE tEM AL. BOE CE Android “4"}1 kt AAR, Se LAG IC IS AIG BH SS BS AINA SVR, MAA AZ ME AP LT RH? Android IK AMRF MRR S Uk PINS BE AS. fA IX TU it Fe ESE ContentProvider. —-4* Content Provider * 95h T — TERE Ail ERB i NCH ANH fea dete Content Provider (4 PRCA. ta SAE of LLAMA 4 Content Provider (fH 34% | U5 A LMU SRB AS. SRA ABI, AAS DEL FG SAU AS) RR IAD SS a 8) CD. MIR RR Pe HED OE it Google Android FRA S Ket TEAL ARIS, Eb, BEI RL FE DL ie ek — A HVAT Ei, TVR RE Ree, CLT ARI ARIPO MAE. HAR, ol a Soi Ae EHEC G. PUsPE AER LINO, RM Pia. * query (Uri uri, String|] projection, String selection, String[] selectionArgs,String sortOrder): il i Uri UT, B14 Cursor. * insert (Uri url, ContentValues values): # ALMA Uri Hae (Hy. © update (Uri uri, ContentValues values, String where, String[] selectionArgs): Ui Uri iz CE ie. * delete Uri url, String where, String] selectionArgs): IBEHHSE Uri JF EL@) 0 sie Ae Phat Meats 2. {t4 ContentResolver 9 HOEY FL ContentResolver #11 *T LL ia] ContentProvider 42 (/4 #de, ¢f Activity “4! ifLct getContentResolver()! L444) 4 HT NZI 8) ContentResolver J: 9 .ContentResolver HEH: (U4% (1 Al ContentProvider (Hi SK DAA | L8th, EIEATDA BIL © query (Uri uri, String]] projection, String selection, String[] selectionArgs, icf Uni Bertil, lel —4+ Cursor. + insert (Uri url, ContentValues values): 8 —-AUMCR A) Uri AeA Jy. © update (Uri uri, ContentValues values, String where, String[] selectionArgs): E37 Uri JHE 4 BG * delete (Uri url, String where, String{] sclectionArgs ): MJBRHTi Uri FHT A RPE. ng sortOrder ): if 3. ContentProvider #1 ContentResolver "JH £164 Uri ¢£ ComtentProvider HI ContentResolver “4 JILAl Uri fy Baia Gh, 3) AURA ID IR. RA PL. * content://contacts/people/ ik Uri #851 10 AE ABR A ABR * content://contacts/people/1 3X4 Uri HH NKIAE ID 1 AUR AR A A Hit. fe LTBI Uri ih 3 BSNL AR © Re RBay Abs “content://" ARBAB SEPER HBR «BUA ALE ID CUBE THE ID, A il ORB). HHP UR SHAE IC. ARRAS A, FLARE. FEL, #2 Android “Seba MT ue FUR, HE RT RRC KP EB OAL. (LO Fe © Contacts.People. CONTENT_URI (KA A(t URD. 8.5.2 {84 ContentProvider HER Aa Bz MAMA TL, MOLE ROR A A HE ROE, RSE AI, PRGA READ ase, LGR MAT or Dee 8 © MITRE ADD PIE A. WAAR, MULTI Android (15 83 Fe eG (HH RH © tufa] 8/4] ContentResolver “'l'ff) query() Ji Se SAE aR A bas: 1, Be 4¢ Eclipse ‘47 fF ex09_1_ContentProvider TH. JPR RRIF AI FS 1) BRE AML. eK AT File-* New Android Project Ji. (2) ASTRA KDMHE'D, 22 Create project from existing source Jil. (3) MulrBU SAH. 485) ex09_1_ContentProvider JK], i Mitra Beal. LEI Fateh tt cP 8-23 Biase 2. Soe TARTAR TI HL. HER AIM 8-24 DAR A823 ARE RAM PH 8-24 Pitas th SU de Pe AE CE fay BS, FOR IRR AY AL MS ILA RA 3. RSS HE PR LAR RR ART, FOE C1) PULAU AS Home SE, (EAE MORRU IMEI. Po aeihi Lf Contacts S/H, SIF] 8-25 Bias (2) MANA. dip MENU Jil. {et BURR 1 i; New contact #4, HIF) 8-26 ia 9 B-26 Mech New contact jel 157 158 Google Android ##4A[7 5RAR (3) MER AR ARES AU Se. SPA 8-27 Bias. (4) Me fe MENU 38, (ci T1Y API EMule Save SURCE, OE 8-28 Bint. 28-27 AMNCR A BAI AM2n (RARER ARE C5) HR ERE, SI Toe Rai a BE as On PM 8-29 Bras. 4, Sms PRIZE, BE BAF setbistAdapter (3 28 SE 7S FA 8-30 Aras. 08-2 MER 2 RE-30 AES FREI} ActivityMain ‘Pf onCreate() 774, ARGS a B Bans veoinetan nstanceState) : entResolver() .query (Phones. C NAME, Phone: Riid.textl, ar ‘ow Stringl | new int {] {Android pter): null, BRB. BANS. CH —Android ARIE Ae HELE BRR © getContentResolver() /sié(# 17 )|] 9 ContentResolver § © query (Phones.CONTENT_URI, null, null, null, null). ‘Zé ContentResolver HAVA IK, SU PHT RRA, FELL Cursore AT TILER SE, SRILA MO FS DP SHON Uri, Cel MOF LUG Uri SR AT Uri. “AS BR ES TT A a HEH iH PRS 22 PUGET. © PLP SRA T SOL fyi) where MIP, Wie MME (ARE, 0 BUNA ANE Matt, EU TH UTE SP BA 62" FE © PRPS HEH AK. © startManagingCursor(c)i8 fJ ik R4OR ET AEH Cursor. * ListAdapter adapter ~ new SimpleCursor dapter(this, Android. R.layout.simple_list_item_2, ¢, new String|] { Phones. NAME, Phones. NUMBER }, new int{] { Android R.id.text!, Android.R.id.text2 }) 4) 27> SimpleCursorAdapter, (KF SimpleCursorAdapter HATH 7 MERE Sea rsd © setListAdapter(adapter). # ListView #ll SimpleCursorAdapter if {743k - 8.5.3 {£FH ContentProvider # (ERE A ica SCH fe te BL “4 2) ComtentProvider, Jf EL EH 1 SEP A — “PRR AOA ContentProvider, 4A W “i, BUTS IRASIOUA 8 RPT HN Hic, AAR UAT JH ContentProvider ‘S23. 1A) AS Ad: BL HU ANG EDL 5 aE SAR ARI YL fol 79 ik AI JET HH RK TAL FB © Wf EIN ContentProvider. © HAE UriMatcher (ty7F 4. © onPrepareOptionsMenu i: Sr#01« SLUR SE SLAG MR nF As © 1. Be dE Eclipse "P47 JF ex09_2_contentProvider SH, HASHES F. CD Beat 7A, fee Mi File + New — Android Project 5%. (2) (ERP A IEA, GPF Create project from existing source Ji. (3) HtARMETIL, HL) ex09_2_contentProvider SiH], Yi Vevtra ae Het. HPI HSA 8-31 Braise 2. 8 PTA MA, He eaF BME 8-32 rast. Google Android FRAN S KAR A832 FRI oReMAS ATE fe 8-32 ARMA TICE 8 RTI) FES Wh ABATE AG ty Tyke 4 ListActivity. 1 FLCUK (AB 21122 diary list.xml, 3 J> ListActivity AYE} 7772 A1i% 0 iH A Lh BW 7 ER 6. diat tx AAG aad Bas droid. com/apk/res/Andeaid™ ext MEH FEMS Fee FINA Menu He LinearLayout> ACPA JE ListView ff) id Bee Xn Android:i¢: Activity BAL. 3. Se AVA 8 EN AT AR, Hi ARE OPN S (IAS, AML BETA BL. aie. AEB (EIN AS AL RE ContentProivder #5230, BUNA — P Diary 8, AK AT A ASK DiaryColumns, #1 (6 FR HE, ARB RT PAF, HACE Bas: public d+id/Android:list”, L&E REA AT LLL List Lite BUTE, (EAE + TAM et Ai A plenents BaseColumns AUTHORITY + */diacies") lir/ynd. google. diary"; Sd. curser.iter/u 160 BROS ABallh. OME —Android (yas EHR string DEP) String TrTLI String BODY ~ String CREATED = "created"; = "created Dt URE: © BaseColumns Jb -74E 0, SLIn APPA. A E_ID= “ id", 5) 48 _COUNT=" count" » ¢& Android “ith, RE RARIER RAPPER. TELE AA MAM, FLIES, BaseColumns » AFRIKA F © PRENTICE, SRA AER, SRE: “id, ie TR id. HU id FH. + "body", “created”. BATH 4 Android teikit “ee” DR aa Rar RA HAE, REFER A 4. ROS FER RAT DiaryContentProvider 2, i& +8447 | ContentProvider, (61k PRE ITR T ContentProvider fl - “64% 11% Fay HAH -4+ ContentProvider. FR PTHLTE IML et HR, ORAL T EI ASEH ContentProvider it SL HEA) 9. (1) 4k ContentProvider DiaryContentProvider JE 4k 7k ContentProvider Kit). (2) Si —4 public static final ff) Uri FAVE. Jf Hy CONTENT URI. Diary Content Provider Pr fe SbFHAY Uri fide Me |- CONTENT_URI R#iEM), 7 REREAIIE. ks CONTENT URI HU AVALL contentOT Is, HAAS, Ete SURE Mol Pe AGH URL, LOA URL, ATUL TF content URI MRR, 10 Hn F Bi AR: [contents //com.ex09_2_conteatprovider.diarycontentprovider/diaries/1 Se CARI: © RMSE contents. AMAL ARTERY, HE ASH © FMS} REPEL CAUTHORITY) Ab Sb, AGE) FH LAE com.ex09_2_ content provider.diarycontentprovider, #24Q M2) EME A. ARLE! A AEBR(T) SCSI MK Content Provider PERK. FP RAS. BABA AEANYE AndroidManifest.xml 3 ff 4h {t) FBS REA. 0 ARS ER RR, Pa, Ak MAT ee diaries. St APLAR O PI Bik oT Pena, GIR Content Provider $42: APR ALE BUR. 2G BSP LA, AURA TB, IRIE A POR ASIN Ae, BARNS. AM, Fic Ree FEM AY UL ae a i vane AMULALS ACA “diariesimy”, 9h AVE SUL ABD “diaries/others”, © RUY ABS AL 1". BPR ARSE Te SI. WR, Zonta: Ay 162 Google Android F445 308k A5E 1D iO. (3) HUFL OBE fit ABE. TR POET, ORR (rf BRR ERE TS RE SRGRTPAR TERE ARSED. (ELE UL nT CER eR AE OI AY, ICE AR @ ContentProvider 38 SMR AMM S JTL, FOL Fas © public boolean onCreate(), “4 ContentProvider “| skit i) 4 DAI Arias. © public Cursor query(Uri uri, String[] projection, String selection,String|] selectionArgs, String sortOrder) » J Ai 7i [8] 7 Cursor ASHE A Pei ea RE. public Uri insert (Uri uri, ContentValues initial Values), Jt A330, TEBE RE 8, (ik Sf Uri ‘© public int delete (Uri uri, String where, String{] whereArgs)+ Jt 7774: 33 INRA 2 Uri 3K » © public int update (Uri uri, ContentValues values, String where,String[] whereArgs ), Jt J7 144 EE BUR Uri MBAR. # public String getType (Uri uri), iB [610914 Uri tt MIME 2%, (3) 4f AndroidManifest.xml 344 J Mi hi %, (AM, TEETOL FT, SOMATIC: , J& +}! Android:name % 2% {I) 3:8 (ik 4 content provider (tJ 4%; Android: authorities 47 content URI {J Mh 4>. WRAL ABS, #23 %-: "com.ex09_2_contentprovider. diarycontentprovider" . 5, BRS BOK DiaryContentProvider Ef UP. HOSEA BUR Se Te fit Ce RCH Me a, AiR 1% JERSE BIE — PE, DESC PRAISE Mf DatabaseHelper iW. ATER 8 MET AA E SE, LE A ETT AM, Ao Fas private static class Databaselielper extends SQLiteOpentielper { batabasett super (context, text context) | PATABAS® NAME, ull, OATABASE_VERSTON) eoverside public void onCreate{s0hiteDatabase db) { db. execsQh [ eoverride public void onlpgrade (SoLitepatabase db.execSOL ("DROP TABLE IF EXISTS not onCreate (db) 7 ldVersion, int newversion) ( CU NE: DatabaseHelper LAMM FOURIER Sey ME Ce IF FLEET BSR BME CHR —Android waa eer 4 DiaryContertProvider '|!, FRA 132 4 T Met RR private static final string DATABASE NAME = private static final String DIAR SRS Rae BR IR IE private private static final int private static final in #2 UriMateher? UriMatcher 2 URE Uri tf} — “48 Bb, PAY, AERA DiaryContentProvider PuRiR | th static RR. ATM Matcher - new UriMatcher (UriM, Matcher .addURI [Diary AUTHORITY, Matcher ,addURI (Diary. AUTHORITY, 3u Oe (CORR * sUriMatcher.addURI(Diary.AUTHORITY, "diaries", sLiriMatcher.mateh(uri)) 22s, 1) HURTING Uri Jé content:icom.ex09_2_contentprovider.diarycontentprovider/diaries/, 484 sUriMateher:match(uri) (Qi IDHLAL DIARIES. * sUriMatcher.addURI(Diary.AUTHORITY, “diaries/#", DIARY ID) dav, MURAI Uri te content://com.ex09_2_contentprovider.diarycontentprovider/diaries/id (10+) LA id SE-B), HB 4% sUriMateher.mateh(uri) 938 [EH fH, DIARY_ID Biel UriMatcher FR (1) AT MR AHEM LIT 7S Uri BOR, Bp A ATA Uni AER TL a WSR, FRAT a aR 6. BAG FRET Fc RSA St A AEN AT AS oA. BARE HS or MILF ike 6 CD TAR AM AI: insert(). FLORAL Fass aoverride public Uri insert (Uri uri, ContentValues initialValues) { Ef (aUriMatcher-match (url) != DIAE i throw new [llegalArgumentException ("Unknown URE" + uri): lues values; alvalues !~ null) { = new Content Values (initialValues) » i = new Content ¥aines (+ if ivalues.containskey (Diacy.DiaryCalunns CREATED) == false) 164 Google Android Fae AITSEAR values put (Diary. DiaryColumns. CREATED, getPormatecreatedbate()) 7 ' SE (values. containskey (Ui Resources © — Resources.getayst values put (Diary. DiaryColumne TITLE, x getst cing (Aodreid.R.string.wntitled) |) Lunng TITLE) == false) | if (values.containsKey (Diary.DiaryColumns.B0D¥) == false) | values.put (Diary.DiaryColumns.BODY, "); ) SQLitwDatabase db = mOpentelper.gettritableDatabas long rowid = db. insert |DIARY_TABLE NAME, DiaryCe Lf (ronTd > 0) uri diaryuri= ContentUris.xithappendedrd( Diary.OiaryColumne.CONTENT UAT, rowId) + return dlarylri: BODY, values}; throw new SQLEXception ("Failed to insert row inte " + uri); eC A © NSARM TH 6) sUriMatcher.mateh(uri) != DIARIES XHEiL 3K Uri k4r SYM US 4 Uri AE DIARIES KAUN. AIL Uri BEAL PARIAAY Uri © SQLiteDatabase db = mOpenHelper.getWritableDatabase()i!i4y 1 2 #7 #4) -4+ SQLiteDatabase * db.insert (DIARY TABLE NAME, DiaryColumns.BODY, values) iif didi A Rida A) Rane 0 BR EINAE, insert) IBM AL 4 Uri, ASAE Sida id. PEL, FRAP aE iat (id AHEM -4> Uri:Uri diaryUri= ContentUris.withA ppendedld(Diary.DiaryColumns. CONTENT URI, rowld).withAppendedId() #7 #241 F ULI JAP FEAT SP» ft 4,2 ContentUris? ContentUris #2 content URL () Mi 428. EAP A SE ARAL. Rta G BtoB ‘© public static Uri withAppendedid (Uri contentUri, long id), 3&4 9:2 dr38 id Al contentUri HERE MTS Uris bE MITRAL FY HERS Z (HH (4): ContentUris.withAppendedld (Diary. DiaryColumns.CONTENT_URI, rowld). {J rowld 29 100 Mii, IBA BEAM Uri IA AE Bibs content://com.ex09_2_contentprovider diarycontentprovider/diaries/100. © public static long parsefd Uri contentUri)s iX/* WER 3HE content URI tH id RAT. Hew 41k 7 content URI content://com.ex09_2_ contentprovider.diarycontentprovider/diaries/100, Aik RI PULLS 100. (2) BONE AGL: delete(). SUASEHL RY OB fais Pv | BSR Bare SSH—Android HRIEG RE | toverride public int deleteslri uci, String where, SQLiteDatabase db = mOpenHelper.getitrit sb) String rowid ~ uri.getPathSegments() .get ( return db .delete(DTARY TABLE NAME, Diar "4 cowtd, nulli; , Se (EE * rowld = uri. getPathSegments().get(1) Sit 79# rowld HA. getPathSegments() 277% 47> String fH) List. 7H44161-F°%41 uri_getPathSegments().get(1) 4 rowld, i134 uri.getPathSegments().get(O)S (7H. 49 "diaries" . * db.delete(DIARY TABLE NAME, DiaryColumns,_ID + "=" + rowld, null) J bx#E 0 SQLite HH) GREET. RP BORG ei 7%, BA HOF SQL iN fy 1414 where Hid). (3) BRT AMAT ATIE: update()» SUAS CLO FBT Boverride public int update|vri uri, ContentValues values, String where, String|] whereargs) { SOLiteDatabase db = nOpentielper.getWritebleDatebsxe() ; String rowid = uri.getPathsegnents().get (1); return db.update (DIARY TABLE NAME, valuce, DiaryColumne._1D + "=" + rowld, null) ~ , Me (CSE RE © MAA) SQLiteDatabase MISE Gl, MGR rowld, Jia PMA db.update(DIARY_ TABLE_NAME, values, DiaryColumns._ ID + rowld, null)ifi AJ HUT ER TE. (4) ttt Re RABENTTYE: query. FURS ALN FBT doverride public Cursor query (Wri uri, Stringl] projection, String selection, Stringl] selectionAcgs, String sortorder) ( SQtitegueryfuilder qb” new SQbitequeryBuilder |); itch (sim case DIARIES cher-mateh(uri)) ( gb. sev Tables (DIARY_TABLS NAME) ; break, case DIARY_IDt gb. set'Tabléa (OTARY_TABLS_NAME) + gb-appendidhere (DiaFyColumns. 1b + + Uet.getPathsegnents () .get(l)) break: default throw now IlleqalargumestException ("Unknown URI "4 uri} } string ordorsy; Af (lextutils. isBmpt: orderBy = Diary. Dia: yelse | orderby = sortorder; etorder)) { ‘olumns DEFAULT SORT ORDER, 165, Google Android F+#A(7-5324e SOLiteOatabase db - mOpenHelper.getaeadablebatabase() ; Cursor c - gb.query(db, projection, selection, selectionAegs, null, mull, orderBy); , USE: © SQLiteQueryBuilder 4 —~ VAL SQL Mr iflits MUAHHH. © sUriMatcher.match(uri), USE ISL AY UA ARTIS ti AE HED RIED, “CR UR BBA I RAE id HRA. © SURGBIPMILE DIARIES, 4 545 S447 qb.setTables (DIARY_TABLE_NAME) ili 241 UT © RUBIA DIARYID, MAGE RH where BP MBRMRRME, KH qb.appendWhere(DiaryColumns. ID + "="+ uri. getPathSegments().get(1))« © SQLiteDatahase dh = mOpenHelpergetReadableDatabase(), #448) ~PNT LEEK SQLiteDatabase 971. * Cursor = qb.query (db, projection, selection, selectionArgs, null,null, orderBy) iff), 1&4 A WIL FES HEND SQL Hi), MALIK PH AL SQLiteQueryBuilder KSI. MARIE SQLiteDatabase HAAG, BLL SM ATMs 4 AT]. IAS PAMON query (SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sonOrder, String limit) FHA PBR F. 2 RFS RA ETE TB. 2 RIPSRE PTE EBA, TUM OUR TRIS. © BSP SRAM F SQL TAA MY where 13>. BASE TTR BAL, BUN IIRC = Seeh RATT SS (2). FATS BAF SQL it) “489 groupby AAP. BARA SBA F SQL 84) 4PM having 865). © BEPSRMA LS ATHY. 8 BERANE SQL 4h limit BS, SIE ¢E DiaryContemProvider KB Wi A PTT. AL getType (Uri uri), HP aE getFormateCreatedDate(). Ji AAI VALS) RAT ENERO A, LOREAL, ine ws AEA. PL FRM RS T gettype Wi. FLARMIE Bias: ing gotType(Uei uri} [ cheremateh (uri}) | CONTENT_TYPE: return DiazyColumns.CONTENT_ITEM TYPE; geeault: throw new TLlegalArgurentBxception("Unknewn URI" + uri); , , “Android fi aa 77 fe BAUME: HEAL AES Uni Oia RRO) MIME AMY. “EMI HEYA vnd. Android. cursonitem JS. AS AiR 25k Uni SRE EAR MN. ELL vnd.Android.cursor.dir JF IAD fy IBA BULK >> Uri sem Je A. 7. Bee CREFY EYE di MENU fit, PEPPGS TT YP CA 8-33 Bir as 4 ActivityMain | ATHY AUT Fas: stlenu (Menu menu) ( | rerecraaees 0, Resteing.menu insest); AU © AGS Cen) HINT ede Hl. MI 8-33 FF WA ie A do FS 8-34 Bia MEL AR 8-38 FUERA A RE, KYA, PA 8-34 FA Afi TC EA Hak, 8 A SA 8 GH ICA BPO BEE PinDKA FE ActivityDiaryEditor ". S845 Qh et ag OP AS UTR i RY. PP AL Sa il eh Ak PPL ail Se EA iE Ak Ak 4 TD. ID Ab 4 ActivityDiaryEditor FFF" (EJ onCreate( ya Me. SEACH Mr FBT as protec seState) ( 157 Google Android FA ATs ah, Urhome (Android.®-style. There Slack); Final Intent intent ~ getintent () Final String action = Intent.getaction |); setContentView (R, layout diary edit) ; eTitlevext = (EditText) findViewaytd(R.id-title); mBodyfext ~ (EditText) findView8yld(R.id.body) 7 confLemButton = (Button) FindViewByTd(R.id.confirm) A€ (EDIT DIARY ACTION equaislaction)) (// RIMHiz te ~ STATS EDIT: cursor — managedguery (rllei, PROJECTION, null, null, null); ncursor.moveToRi st OF | a | mci = intent -getData i): | | | | String title = sCursor moat letext.setTe: String body = aCursor-getSteing (2) mbodytex: set Textkeapstate (body) : SetResul: (RESULT OK, (new Intent |)) .setAction (qUri -toSteing()))# setritle (RRB)? | else if (INSERT DIARY ACTION.equals(action)) (// RARBI2 mstate ~ STATE_INSERT SetTit le (AREER) 7 }else { Log-e (TAG, “ao such actien error)? finish 0: return? } confirmBot ton. set0aCLickbi stener (new View.onclicktistener() | public void oncls view! ( SE (qState —- STATE_INSERT) ( ansertoiaey (0s ) else { updateDiary (+ i Intent afntent = new Intent (07 erResult (RESULT_O&, ezntent) + | finishids : | one ) Ye, LER: © iid getlntem(y #4 F114) Mull Activity 4484+ Intent. © itt intemt.getActionQ@ Sik intent IF CAction). FELCERET, “iA Activiy 238 AEVGH HMO STE Hie MHL, BILL, HF ActivityMain “441111 onOptionsltemSelected() PAR FM BUTE (Action) AGAR RM, JARS FBR as: Intent intent0 = new Intent (thie, ActivityDiaryEditor-class)+ intentO.setAction(ActivityDiaryéditor INSERT DIARY ACTION) intent0.setData(aetintent () .getData (|) Startact ivity (intento) ; Se IGmRFE: © MIGRATE 4), JERE) imtemO.setAction ( ActivityDiaryEditor.INSERT_ DIARY ACTION) 8£7f4J action Xt ActivityDiaryBditorINSERT_DIARY_ACTION)S2I4. RES Baise — Android MAE GEE © ActivityDiaryEditor "{'f') onCreate()i Pah fe (Action) 4) INSERT_DIARY_ ACTION INR, SUT mState = STATE INSERT, (abba id 4 HUMUARAS UREA AR AS, © NRG HBAAHE CAction) Jk EDIT DIARY ACTION, BA “GHPARMARE: mState = STATE_EDIT. PLES MGM i Yate HEAL RAF confirmButton (4 4454; Kiwi BB HF AY onClick) BAP BARE AS I TT MA Pr BR Te E ROMO RU DTIC, iT iIREHALT, RPPRRUTHO SE. SELB PSU Fine DiaryContent Provider ues. put (Diary. Diaryce es put (Diary. Diar ontentfeselver () « -TITLE, title): boxy) aryColumns.CONTENT_URT, values); Se) (SA ABE HL. 0 REHEAT BAR ABP ContentValues (ty 3:4) 4] © iB/H getContentResolver()## 4! Jif) + ContentResolver ft « © insert (Diary.DiaryColumns.CONTENT_URI, values) i#4 4 ContentResolver fist A /ids, PHU BP BR, BM BMY Uri, BSP BBR te BE AY ContentValues If SW AAT A Ai Fy (15 Soe ZI] DiaryContentProvider "|" ff) insert() 474s ETH, PPAR AN M 8-35 BEALE 8. W/E F277 WBE) AB Rh RG dy MENU 8 22 Hd] 8-36 Bia PE Fe 8-36 9 ask 4 YEN MMA FSA Pha MENU Se OS RAE Bn PSB AS VAT RE FEARS AE, FARSI Fas he tee 160 Google Android FAIS RAR | public boolean eneceparccpttonstena Men ment? .onPrepare0pt ionstionu (men) 1 boolean haveltems ~ getListAdapter() .getCount () > 0 Lecteditenrd!) > 0) ( javeGeoup (1) 7 = ContentUris.withAppendedid (getintent |) -etvata(), tedttemtd |): intent ~ new Int: (null, eri); + “BABILEN) got intent (intent) ; ete, 1, RSTO); perses nent. removesroup (1) 1 Ye (CELA AE: © YAHGE > ListView HUSHRAY ListAdapter FW 70 41 TAP AEN 1% haveltems yf. a WR Hae © menu.removeGroup( 1), UIE menu T7711 ALT PILE, WK BN HB © getintent().getData()# Fit) Uri & DiaryColumns.CONTENT_URI. © iti dL ContentUris.withAppended!d(getIntent().getData(),getSelecteditemtd()) “i H — 4 #1 ListView 48 fi REY Uric ®) menuadd(1, MENU_ITEM_EDIT, 1, “a4814)%%").setintent(iment), 4£ menu “4 Stn Til “apt pyar”, JE ELA > intent EWE, AXP intent EEK] PAPE, era 4» Uri (MGB, 4 FU onOptionshemSelected() Ha Be“ SHIA © menu.add(1, MENU_ITEM_D} rE, 1, "MSA Ac"). FT 2 WHE haveltems AE, WARE YALA ListView MICH ListAdapter id 01 HAT SHBG SLATE ListView ENUNHR. att MENU HELM IE, We menu Shiba 1 PALI SILER SHER T. SESLIAG) IV: menu.removeGroup( i). MENU HEALY}, HE Activity +} i aA fe A. %—+2 onOptionsitemSelected(), EMAL BAS A SR Pisa, | MENU $4 078 HE, WERT oA, . - °% — 2 onPrepareOptionsMenu(), 2x 4 i #26 443K 4 MENU 48/8 2% menu 5 UB OR BE A eM, SK menu A A A RARE AR BO {menu fi HERDER PER ED “HM MENU BEI BL 3 Hef, TEA ATK onOptionsitemSelected HAL UL RR IMRT E Bia: public boolean onoptionsTtenselected(HemuTten item) | switch (item.getItemid()) { 1 BN Si AE AMLAIAR Android HH" 170 BSS Baise 6 —Android wy Be? eRe case MEMU_ITEM_INSERT Intent indentO= new Intent (this, activityDiaryeditor. class); intent0.setAction iActivityDiaryBditor.INSERT_DTARY_ACTION) ; intent setData(getintent ().getOata()}; startactivity(intentd): return truey 1) SST AER case MENO_ITEM_EDIT: Intent infent = new Intent (this, ActivityDiaryEditor.class); intent, setData(item.get Intent () .getData())z intent setAction (ActivisyDiaryEditor.EDIT DIARY ACTION); stertactavity (intent); 1) RS Gose MENU TTEM DEL Uri uri = Content get bistView)).ge getContentResalys renderlistView (1: -withappondedid (getIntent () .getoata(), CkedTtemId ()) 2 (Q-delete(uri, null, nuliy; 1 rotuen super-onoptionsitemselected (item); ) AEE 2 SAH IBA RAL, ALARM RE MELAS Activity 4) intentO, # HBLHE S Action Ail data, iX7G SS} EREIF REA A ActivityDiaryEditor fi 2/1 ¥). ME eve aE eH Tia, PRPS -PBEHE Activity ff intent, Jf Lt Action Al data. (JAF. GX ARNO} CEA BEGE B) ActivityDiaryEditor Jn SINS. TERME. et item getintent().getData() 4 3 T PFA BEN Uri. ° SFL aN de Las. PEPE BL ContentUris.withAppendedid(getIntent().getData(), getListView().getSelectedItemId()) 3 44 41/75 2 HH SE HEHE Uri. GFE H 4H AY ContentResolvor, 9% Ja WAVE AY delete JE TINK. © ARBEIT, iH] renderListViewQri SUM ListView EAs ACN BIBT. J) St — ia —_ aa HPCE SP 2 AS LAAT Aa RE TE CEA, Bh, A GEE BH AK, MLE OR SB eA AGRE, Fl -#E Android L.i8)}i WebService Hf f. Android 6 FINCH, © HIT XMPP Service 4 Web Service 1 #8 IL. Android SDK 1.0 DUS WAKA AL ATHY API fF YF SYR. Android 1.0 V4 LIRA HES XMPP Service, Mi Hi [A Web Service # APL i % EK . 1. FRE ATMS PT DED ACHR, Bh POST AGLAT ATSC REI ACE webservicex.net Ji, 71 172 Google Android F##A [75 3rae WebService webservicex.net Ji) EMEA THURS, FUME ESSE WSDL So, EA: hupu/www.webservicex. neUWeatherForecast.asm (2) GLHTTP POST i) FAR CHK: SERVER_URL 3645 4b4 WSDL 1) URL, i EARS AS SHY URL). SEALER Bras: private static final String SERVER URL = "http: //uww.webservicex.net/HeatherForecast. Ssmx/GetWeatherByZipCode"s //E 5 HERRON A BML Heepeest request = new HttpRost (SERVER URL); // URNS AIREH Mie — + Heep BR 1) BPO bist params = new Arrayhist (): 1) eRe params. add(new DasicNaneValuePair "ZipCode", "200120714 // BM BAM Eequest.setEntity (now UrisncededForaentity (paras, HTTP.UTE_8)); //Sem Stemi as try ( Hittpaespense AttpResponse = new DefaultHttpClient () execute (request! ; // ATR ISM x 1 BEBO AS LE (httpResponse.getStatusbine() .getStatuscode|) != 404) { String result ~ EntityUtLie.tosteing (nttpResponse.getEntity()) Log.d (LOG TAG, result); ' } cateh (exception =) ( Log-e(LOG_TAG, @.getMessage()); ) Ye (CELE RE: i) LAC EN Hap MA webservicex #0 ZipCode 4 200120" (4F] WASHINGTON D.C) If 4 Re, TRINA RA Ps lat i tude>38.97571 77 .02825¢/Longitude> 0.024849 ii WASHINGTON eStatecode>dt Saturday, April 25, 2009¢/Day> Skestherinageshttp: // forecast .weatner .gov/images/wtf/sct. jpqs/NeatherImage> eNaxTemperatureF>B8 S 1 4 BBR Baht SS —Android Heise haw tt Sunday, April 26, 2009% SileatherInage>hetp: // forecast weather. gov/ images /utf/few. jpg ‘saxtemperature®>29 60 321b MAP BLAS Fal fe Android "PWT SE, ROR NTE, IF Bett iki javanet*, Android.nct ik, CERRABGRT . RS CES. Gaerne AEST HL TUM de Android ' [32 SL BGR (0 Fen AIM. VEMN SPT T 484428 (4) SharedPreferences. Lee He BEN SCTE TF A LAE TEA, tA eH T Android #4 ff) ContentProvider 773. Jit ha bk ak WA HARO IF, as FAN WABI WebService MBGH . MARNIE, Bee iALe BEALE HL TAF F Android P61 4F (SEA PA a, EASE AL RI HE A LA it A aT FRACTAL ER, ERLE AM, Dee SL aE = 173

You might also like