tot vaststelling van een kader voor het creëren van je menu 's, de toepassing van de menu' s is het creëren van een goede ervaring is van essentieel belang voor de gebruikers.In de laatste les, we kijken naar het scheppen van mogelijkheden voor de programmering en de menu 's van XML - toe te voegen aan de orde.In deze handleiding zullen wij kijken naar de context van de menu 's - met betrekking tot de standpunten van bepaalde delen van het menu.En als androïde 3, er zijn twee soorten: de in de context van de menu 's oude stijl die menu' s, drijvend op het scherm, verankerd in de context van de elementen op de wijze van optreden; en (Andros 3 en in dit kader), een actie BAR (CAB) die op de Top van het scherm.De taxi is nu voorziet in een context van de voorkeur van de menu 's, maar als je de code en de androïde 2.3 of eerder verenigbaar is, je moet ook voorzien in een praalwagen versie komen te vallen.Zullen we die optie, hangt ook af van hoe zowel in uw code.,, zullen wij met dezelfde code als in de vorige handleiding behandeld, zullen we in de context van de menu 's van de behandeld doel van het werkcollege code, die het vuur een URL' s beeld klik drijvende menu,,,, we beginnen. Drijvende menu, kun je de oude versie van de werking van de apparatuur dan API - 11.Ten eerste, we creëren we XML - menu 's, res /menu /grid_element_menu. XML,:,, <?De XML - = "1" codering = "utf - 8"?> < xmlns:Android = "menu" > http://schemas.android.com/apk/res/android < project - id = "+ ID /showurl" androïde: titel = "@ string /showurl_title" /> < /menu >,, we behandelen gridviewtestactivity code.We moeten nog een oproep register context menu, net van de uitvoering van de projecten, oncreatecontextmenu ():,, beschermde nietig oncreate (pakket savedinstancestate) {///////setadapter in behandeld. (gridadapter); registerforcontextmenu (behandeld); ///////rusten voordat} de leegte oncreatecontextmenu (snelle menu, van mening contextmenuinfo menuinfo {-). Oncreatecontextmenu (menu 's, V, menuinfo); menuinflater pomp = getmenuinflater (); de inflatie. De inflatie (r.menu.grid_element_menu, menu' s);},,, registerforcontextmenu (), collega 's, biedt uitzicht (, behandeld,) en het kader van het menu.Als het oog is behandeld of m, zodat alle projecten in de context van de registratie van hetzelfde menu.Voor de andere standpunten, en je moet voor zijn eigen afzonderlijke context menu geregistreerde elk oog.Oncreatecontextmenu (,), werkt op dezelfde manier als de laatste les, oncreateoptionsmenu (), de inflatie, de menu 's van XML -., en, ten slotte, om het juiste te doen, in het kader van het menu van de gebruikers op en we moeten bereiken, oncontextitemselected ():,, openbare booleaanse oncontextitemselected (menu' s) {adaptercontextmenuinfo informatie = (adaptercontextmenuinfo) project. Getmenuinfo (); - (project. Getitemid ()) (zaak r.id.showurl: bedoelingen ik = nieuwe plannen (de intentie. Action_view); i.setdata (Uri. Analytische (gridadapter. Getitem (informatie).Getimageurlstring ())); startActivity (me); terug waar; de standaardwaarde: terug naar de Super. Oncontextitemselected (post);}}, was er slechts één menu 's tot nu toe, we kunnen nog meer gebruik te maken van een verklaring.Dit zal het ook mogelijk maken om de menu 's in een soort van vader.,, de opstelling en de, zie je je drijvende menu' s, je op een post.,,, de systematische actie van de menu 's, die nu aan de kant van de keuze van de context van de menu' s in de context van de actie BAR (cabine).Er zijn twee methoden kan de oprichting van een taxi.Als je wil een taxi naar een specifieke gemeenschappelijke standpunten, en je kan het gebruik van actionmode.callback.Dit is het menu van documenten in de androïde in detail besproken) maar dat is niet zo goed met de m en behandeld.Voor deze, zou je een betere uitvoering van multichoicemodelistener.Dit kan de gebruiker de mogelijkheid meerdere projecten, en de toepassing van één enkele keuze, ze.Hier hebben we echter alleen de toepassing van onze steekproef van een enkel project, de interface aan.Het creëren van uw aanvraag, zorgvuldig rekening te houden met het gebruik van de menu 's in welke omstandigheden de beste ervaring van de gebruikers, te creëren. De multichoicemodelistener, lijkt deze (in gridviewtestactivity):,, particuliere multichoicemodelistener modelistener = nieuwe multichoicemodelistener () {int itemselectedposition; openbare booleaanse oncreateactionmode (toxicologische mechanisme, menu' S) {menuinflater pomp = model. Getmenuinflater (); de opblaaspomp (r.menu.grid_element_menu. Uitbreiding, menu 's); terug waar;} de leegte onitemcheckedstatechanged (toxicologische mechanisme, de internationale status van de id, generaal, itemselectedposition booleaanse inspectie) {} = standpunt; de Boolcaanse onprepareactionmode (ACTionmode menu) {///////invalidate () na de terugkeer van de taxi 's verzoek voor;} de Boolcaanse onactionitemclicked (toxicologische mechanisme, de menu' s (item) {schakelaars. Getitemid ()) (zaak r.id.showurl: bedoelingen ik = nieuwe plannen (de intentie. Action_view); i.setdata (Uri. Analytische (gridadapter getitem (itemselectedposition.).Getimageurlstring ())); startActivity (ik); - de. Af (); terug waar; de standaard: terugkeer valse;}} de leegte ondestroyactionmode (toxicologische mechanisme) {///////doen}};,, als je het vergelijkt met de code van de menu 's of drijvende MENU kiezen, zou je zien dat veel overeenkomsten.We hebben de menu 's, het creëren van de eerste, onactionitemclicked (), nogmaals, we zien de schakelaar voor de code.Op dit moment moeten we vanuit een andere methode voor het verkrijgen van bepaalde posten positie, onitemcheckedstatechanged ().Let op, we hebben maar een geheugen van de positie van een int, elke keer als een geselecteerde projecten geselecteerd of geannuleerd, int - zal worden gedekt.Dit betekent dat we alleen het sturen van een gemeenschappelijke website (nieuwe projecten) van plan is.Als we dat kunnen op meerdere projecten (zoals deze te schrappen, of delen van al hun), we moeten het volgen van alle geselecteerde projecten.,, bij het creëren van multichoicemodelistener, het duurt maar twee lijnen is geregeld in de gridviewtestactivity:,, beschermde nietig oncreate (pakket savedinstancestate) {///////setchoicemode (in behandeld. Behandeld. Choice_mode_multiple_modal); behandeld. Setmultichoicemodelistener (modelistener);}, opgesteld, en een lange - zal leiden tot een taxi. En, je kan ook worden gebruikt in het kader van die BAR toxicologische mechanisme te veranderen.Bijvoorbeeld, je kan een gewoonte posten of onderverdelingen:,, openbare booleaanse oncreateactionmode (toxicologische mechanisme, menu 's) {///////settitle ("model voor de. Actie!")- setsubtitle ("vertaald".); terug waar;},, dit screenshot blijkt dat ze zou komen.Het mechanisme van de toxicologische dossier naar andere opties te kijken.,,,,,, in de code een andere verbetering is dat de wijziging van de achtergrond van bepaalde posten van kleur of de instelling van een vakje (s), blijkt dat de behandeling heeft gekozen, stand - by.,,, als je de code van de zwevende menu 's en de cabine, en werken In een API - 11 of de werking van de latere versies van de hulpmiddelen die de menu' s, zal in de cabine bezig gezien in de context van de menu 's, dit is nu de keuze van de prioriteiten.Laat je de code van het gebruik van die menu 's, in het begin van de versie van de API, kan je een API - controle:,, beschermde nietig oncreate (pakket savedinstancestate) {////////- lijn in plaats van in setchoicemode () en setmultichoice. () (); setupcontextualactionbar} particuliere nietig setupcontextualactionbar () {als (build.version.sdk_int *; = vastgesteld. Version_codes. Mobiele) {behandeld. Setchoicemode (behandeld. Behandeld. Choice_mode_multiple_modal). Setmultichoicemodelistener (nieuwe multichoicemodelistener () {///////- codes voor de multichoicemodelistener});}}, moet je ook in de lessen beginnen opmerkingen toe te voegen, remt de API - verenigbaar met de waarschuwing en de opstelling van de code, toegestaan: @ Suppl.Resslint ("les newapi") moet gridviewtestactivity uitbreiding van activiteiten, moet je alleen in je er zeker van zijn dat je met al je nieuwe API - code in passende, als je dit doet, of de bepalingen van het te beschermen.Meer over de steun verschillende platforms en de API - en zien... In dit dossier,.,, een reeks meer zie:,, de ontwikkeling van de toepassing ervan: het creëren van een menu.
Hoe de ontwikkeling van toepassingen in de androïde
Previous:Hoe pas screensaver Linux