1 00:00:00,000 --> 00:00:09,620 2 00:00:09,620 --> 00:00:11,550 >> FRED WIDJAJA: Okej. 3 00:00:11,550 --> 00:00:12,600 Hej, alla. 4 00:00:12,600 --> 00:00:19,450 Tack välkomnandet för ansluta mig vid detta seminarium. 5 00:00:19,450 --> 00:00:23,130 Så idag kommer vi att tala om hur man kan utveckla appar för Android, 6 00:00:23,130 --> 00:00:26,870 och i synnerhet, ska vi vara att använda Android Studio för 7 00:00:26,870 --> 00:00:29,490 att utveckla våra appar. 8 00:00:29,490 --> 00:00:32,150 >> Så som ni alla kanske vet. 9 00:00:32,150 --> 00:00:36,750 Android använder Java, och så ska vi vara går igenom en kort introduktion 10 00:00:36,750 --> 00:00:39,860 på Java själv. 11 00:00:39,860 --> 00:00:45,830 Så jag vet att många av er har bara erfarenhet programmering i C. So 12 00:00:45,830 --> 00:00:48,760 det är helt bra, och det är eftersom Java är mycket, mycket 13 00:00:48,760 --> 00:00:53,750 liknar C, med små skillnader. 14 00:00:53,750 --> 00:01:00,040 >> Så typerna i Java är fixerad i det antal byte. 15 00:01:00,040 --> 00:01:04,290 Så i C har vi shorts och longs, och de 16 00:01:04,290 --> 00:01:07,880 skiljer sig i antalet bitar från maskin till maskin. 17 00:01:07,880 --> 00:01:10,990 I Java, det är redan inställd som standard. 18 00:01:10,990 --> 00:01:16,320 Så byte har åtta bitar, shorts har 16 bitar, och så vidare och så vidare. 19 00:01:16,320 --> 00:01:22,780 Vi har också chars, booleska, och även flyter och dubbel. 20 00:01:22,780 --> 00:01:27,150 Så hur du programmerar in Java, det är mycket lika. 21 00:01:27,150 --> 00:01:30,150 Så till exempel har vi för loopar och medan loopar, 22 00:01:30,150 --> 00:01:39,090 och om och else uttalanden är exakt samma som du skulle göra i C. 23 00:01:39,090 --> 00:01:45,390 >> Okej, så det speciella med Java är att den är objektorienterat. 24 00:01:45,390 --> 00:01:46,560 Nu, vad är objekt? 25 00:01:46,560 --> 00:01:49,220 Så om du tittar på saker omkring dig, du ska 26 00:01:49,220 --> 00:01:54,540 märker att varje verkligt objekt har två gemensamma egenskaper. 27 00:01:54,540 --> 00:01:59,100 Och det är att de har tillstånd och de har någon form av beteende. 28 00:01:59,100 --> 00:02:02,510 >> Så till exempel, hundar skulle ha stater som 29 00:02:02,510 --> 00:02:07,360 är namn, färg, ras, kanske om hunden är hungrig eller inte. 30 00:02:07,360 --> 00:02:12,490 Och vissa beteenden som hundar skulle ha skulle vara skällande, eller viftar en svans, 31 00:02:12,490 --> 00:02:14,340 eller hämta en boll. 32 00:02:14,340 --> 00:02:18,120 Så kan vi också tillämpa denna till döda ting. 33 00:02:18,120 --> 00:02:23,130 Så till exempel, bilar, har de modellen, året, max hastighet, 34 00:02:23,130 --> 00:02:25,500 och så vidare och så vidare. 35 00:02:25,500 --> 00:02:27,450 Och de har vissa beteenden. 36 00:02:27,450 --> 00:02:33,050 Till exempel, accelererar, eller bromsning, eller gå bakåt. 37 00:02:33,050 --> 00:02:38,910 >> Så Java-objekt försök att modellera detta genom att ha fält och metoder. 38 00:02:38,910 --> 00:02:45,050 Så fält är de stater som Java-objekt kan ha, 39 00:02:45,050 --> 00:02:51,440 medan metoden skulle representera beteende som en Java-objekt skulle ha. 40 00:02:51,440 --> 00:02:53,770 Så när jag säger metoder och fält, jag verkligen 41 00:02:53,770 --> 00:02:56,470 bara betyda variabler och funktioner. 42 00:02:56,470 --> 00:03:02,120 De är exakt samma, förutom att de gäller ett visst objekt. 43 00:03:02,120 --> 00:03:04,880 >> OK, så vi går vidare till klasser. 44 00:03:04,880 --> 00:03:08,950 Java-klasser är som ritningar för ett objekt. 45 00:03:08,950 --> 00:03:12,270 De berätta vilka metoder den har, vilka fält den har, 46 00:03:12,270 --> 00:03:17,750 och även här har vi något kallade access modifierare som 47 00:03:17,750 --> 00:03:19,570 vi kommer till på ett tag. 48 00:03:19,570 --> 00:03:26,930 Så för att förklara en Java-klass, det är mycket lika i syntax till en C struct. 49 00:03:26,930 --> 00:03:34,350 >> Här vi börjar med public class Bil, och sedan har vi en öppen stag och sedan 50 00:03:34,350 --> 00:03:38,800 några antal fält som du vill att objektet ska ha. 51 00:03:38,800 --> 00:03:44,650 Och sedan har vi här några metoder, och vi har också en objekt konstruktör. 52 00:03:44,650 --> 00:03:48,690 Nu vad detta objekt konstruktor gör är det berättar objektet, 53 00:03:48,690 --> 00:03:53,370 OK, jag vill initiera detta invända med någon sorts fält. 54 00:03:53,370 --> 00:03:58,310 >> Så här vill vi varje bil att ha en modell och ett år. 55 00:03:58,310 --> 00:04:01,480 Så vi har en konstruktor bara specifikt 56 00:04:01,480 --> 00:04:06,560 modell- och året och Detta skulle ställa modellfältet 57 00:04:06,560 --> 00:04:12,510 till ett visst värde, och Årets fältet också. 58 00:04:12,510 --> 00:04:16,019 >> Nu om åtkomst modifierare Jag talade om. 59 00:04:16,019 --> 00:04:21,560 Här har vi den offentliga och privata åtkomst modifierare. 60 00:04:21,560 --> 00:04:27,730 Så du kan se det som den rwx i dina kataloger. 61 00:04:27,730 --> 00:04:33,020 Så de tillåter vissa människor att läsa, och ha tillgång 62 00:04:33,020 --> 00:04:35,150 till dessa områden och metoder. 63 00:04:35,150 --> 00:04:39,470 >> Så om jag säger att modellen och år och snabbhet är privata, 64 00:04:39,470 --> 00:04:46,360 det betyder att andra objekt kan inte Försök att komma åt denna objekts fält 65 00:04:46,360 --> 00:04:47,760 det finns privata. 66 00:04:47,760 --> 00:04:52,280 Men när jag satt tillgång modifierings att vara offentliga, 67 00:04:52,280 --> 00:04:57,630 nu det betyder att andra föremål är fria att komma åt och även 68 00:04:57,630 --> 00:05:00,770 används de metoder som definieras här. 69 00:05:00,770 --> 00:05:04,160 70 00:05:04,160 --> 00:05:09,210 >> Så detta är den grundläggande Bil objekt som jag har. 71 00:05:09,210 --> 00:05:15,350 Vi har accelerera, bryta, och getSpeed ​​metoder. 72 00:05:15,350 --> 00:05:20,180 För denna punkt är alla tydligt på Java-objekt och hur man deklarerar dem? 73 00:05:20,180 --> 00:05:22,710 Cool, okej. 74 00:05:22,710 --> 00:05:29,120 Så om du vill använda Java invända i ett program i sig, 75 00:05:29,120 --> 00:05:35,720 då kan vi använda denna ny bil konstruktör. 76 00:05:35,720 --> 00:05:41,250 Så här är vi säger att vi vill förklara ett nytt objekt, som är av typen Bil. 77 00:05:41,250 --> 00:05:44,120 Och här är det att applicera modell och år, 78 00:05:44,120 --> 00:05:51,110 som vi har definierat i detta objekt här. 79 00:05:51,110 --> 00:05:55,150 >> Så detta är också en annan invända, om du märker. 80 00:05:55,150 --> 00:05:59,820 Det är en klass för huvudprogram själv. 81 00:05:59,820 --> 00:06:04,660 Och vi har denna PSVM, eller offentlig static void main, funktion, 82 00:06:04,660 --> 00:06:08,200 och dess utgångs punkt i ditt program, 83 00:06:08,200 --> 00:06:12,320 liknar den huvudsakliga funktion i din C-program. 84 00:06:12,320 --> 00:06:16,870 Här kan vi komma åt och använda objektets funktioner 85 00:06:16,870 --> 00:06:21,480 använder pricken och sedan funktionsnamn notation. 86 00:06:21,480 --> 00:06:26,130 Och vi kan även ange vissa argument eller parametrar 87 00:06:26,130 --> 00:06:28,260 för den funktionen. 88 00:06:28,260 --> 00:06:32,410 >> OK, så nu går vidare till arv. 89 00:06:32,410 --> 00:06:37,670 Så verkliga måls delar samma egenskaper. 90 00:06:37,670 --> 00:06:42,490 Så till exempel, det finns olika typer av cyklar. 91 00:06:42,490 --> 00:06:47,280 Till exempel, mountainbike, stadscyklar, eller tandemcyklar. 92 00:06:47,280 --> 00:06:50,320 Så de har denna gemensamma egenskapen att vara en cykel. 93 00:06:50,320 --> 00:06:55,740 >> Och så cyklar kan ha två hjul och de kan ha ett styre, kanske till och med 94 00:06:55,740 --> 00:06:58,750 en baklykta eller något liknande. 95 00:06:58,750 --> 00:07:04,930 Så Java ger oss här makt att representera objekt 96 00:07:04,930 --> 00:07:10,170 som har vissa gemensamma egenskaper genom arv. 97 00:07:10,170 --> 00:07:18,370 Nu, vad arv gör, är det passerar på ett objekts fält och metoder 98 00:07:18,370 --> 00:07:20,920 på ett underordnat objekt. 99 00:07:20,920 --> 00:07:24,080 >> Så till exempel, om jag har en bil, och det har 100 00:07:24,080 --> 00:07:28,570 tillståndet av att ha fyra hjul och en ratt, 101 00:07:28,570 --> 00:07:31,120 då kan vi förmedla detta till vissa olika typer av bilar. 102 00:07:31,120 --> 00:07:35,470 Till exempel har vi sedan, sportbil, och en SUV. 103 00:07:35,470 --> 00:07:38,940 Nu, dessa tre olika typer av bilar skulle fortfarande 104 00:07:38,940 --> 00:07:42,050 har fyra hjul och en ratt, men då de 105 00:07:42,050 --> 00:07:43,900 kan ha viss särdrag, 106 00:07:43,900 --> 00:07:49,980 som att ha fem platser och en för en sedan, till exempel. 107 00:07:49,980 --> 00:07:58,510 >> Så för att utnyttja detta arv Funktionen använder vi detta nyckelordet extends. 108 00:07:58,510 --> 00:08:04,570 Så minns tillbaka till bilen invända att jag definierat tidigare. 109 00:08:04,570 --> 00:08:06,730 Nu definierar jag en Sedan objekt. 110 00:08:06,730 --> 00:08:09,930 111 00:08:09,930 --> 00:08:17,850 Så här Sedan objektet skulle ha samma fält och funktioner, eller metoder, 112 00:08:17,850 --> 00:08:19,660 att bilen skulle ha. 113 00:08:19,660 --> 00:08:24,830 Men sedan, här jag specificera vissa ytterligare funktioner, 114 00:08:24,830 --> 00:08:26,830 till exempel, den inställda antal passagerare 115 00:08:26,830 --> 00:08:29,150 och få antal passagerare. 116 00:08:29,150 --> 00:08:32,000 >> Här kan du också märka att vi kan åsidosätta metoder, 117 00:08:32,000 --> 00:08:34,840 och det innebär att vi är bara ersätta beteendet 118 00:08:34,840 --> 00:08:38,549 att agera annorlunda i vissa fall. 119 00:08:38,549 --> 00:08:42,710 Så, till exempel, vill jag ställa in en maxhastighet för vår bil. 120 00:08:42,710 --> 00:08:49,840 Och att göra det, kontrollerar jag om detta hastigheten skulle gå över maxfart. 121 00:08:49,840 --> 00:08:54,180 Och om det inte gör det, sedan ringa jag super klass "påskynda metoden. 122 00:08:54,180 --> 00:09:00,350 Så detta är super.accelerate () samtal super klass "påskynda metoden. 123 00:09:00,350 --> 00:09:05,390 124 00:09:05,390 --> 00:09:09,940 >> Slutligen ska vi prata om gränssnitt. 125 00:09:09,940 --> 00:09:18,090 Så gränssnitt är ett sätt att bara exponera vissa metoder till omvärlden. 126 00:09:18,090 --> 00:09:19,980 Så de är som en tabell innehållsförteckning, och du 127 00:09:19,980 --> 00:09:25,900 kan tänka på dem som gillar de C header-filer, precis 128 00:09:25,900 --> 00:09:33,680 liknande metoder med tomma kroppar och de specificera vad föremålet eller klassen 129 00:09:33,680 --> 00:09:37,710 måste ha, eller vilka metoder objektet eller klass måste ha. 130 00:09:37,710 --> 00:09:41,360 >> Så till exempel, om jag har en cykel-gränssnitt, 131 00:09:41,360 --> 00:09:46,530 och den har tre olika metoder, och här om jag genomföra detta gränssnitt, 132 00:09:46,530 --> 00:09:49,864 då det innebär att denna cykel skulle behöva införa samma tre 133 00:09:49,864 --> 00:09:51,530 metoder som jag definierade i gränssnittet. 134 00:09:51,530 --> 00:09:57,076 135 00:09:57,076 --> 00:10:01,390 >> Fram till denna punkt, några andra frågor? 136 00:10:01,390 --> 00:10:03,240 Okej, coolt. 137 00:10:03,240 --> 00:10:07,770 Så detta var en mycket kort och snabb tutorial på Java. 138 00:10:07,770 --> 00:10:14,560 Det finns sätt fler funktioner och ämnen på Java, att du faktiskt kan gå igenom. 139 00:10:14,560 --> 00:10:17,690 Till exempel, det finns generika, det finns datatyper, 140 00:10:17,690 --> 00:10:19,780 det finns även enums och grejer. 141 00:10:19,780 --> 00:10:23,400 Så om du vill veta mer om det, gör följ dessa länkar, 142 00:10:23,400 --> 00:10:25,840 och de ska lära dig mer om dem. 143 00:10:25,840 --> 00:10:30,220 >> OK, så låt oss gå vidare till faktiska kött av seminariet, 144 00:10:30,220 --> 00:10:34,080 och det är faktiskt Android programmering. 145 00:10:34,080 --> 00:10:37,660 Så innan vi faktiskt komma till programmering, 146 00:10:37,660 --> 00:10:40,800 Jag vill prata om något jargong. 147 00:10:40,800 --> 00:10:46,980 Så en verksamhet är Android sätt att säga 148 00:10:46,980 --> 00:10:52,870 det är en enda skärm i programmet. 149 00:10:52,870 --> 00:11:01,100 >> Så, till exempel, om du har ett Gmail app, har vi utsikt mejl aktivitet. 150 00:11:01,100 --> 00:11:02,990 Och sedan om du klickar på en viss e-post, att 151 00:11:02,990 --> 00:11:08,850 kommer att visa en annan aktivitet där det är en vy e aktivitet. 152 00:11:08,850 --> 00:11:14,740 Och då har vi också komponera aktivitet, eller redigeringsmeddelandeverksamhet. 153 00:11:14,740 --> 00:11:18,380 Och så verksamheten är allmänhet bara en enda skärm 154 00:11:18,380 --> 00:11:21,800 inom själva ansökan. 155 00:11:21,800 --> 00:11:28,410 >> Nu, åsikter är de komponenter som upp skärmen, eller själva aktiviteten. 156 00:11:28,410 --> 00:11:34,430 Så de drar en viss sak i skärmen. 157 00:11:34,430 --> 00:11:37,840 Så till exempel, kan det vara en textfält, kan det vara en etikett, 158 00:11:37,840 --> 00:11:40,090 det kan vara en kontroll box. 159 00:11:40,090 --> 00:11:44,110 Så det är många olika typer av vyer. 160 00:11:44,110 --> 00:11:47,780 Så nu har vi intentioner, och det är ett budskap 161 00:11:47,780 --> 00:11:51,070 som förs vidare till en annan aktivitet. 162 00:11:51,070 --> 00:11:58,997 Och de innehåller uppgifter om vad du vill här aktiviteten ska köras. 163 00:11:58,997 --> 00:12:00,830 Slutligen har vi den manifest-fil, och att 164 00:12:00,830 --> 00:12:07,900 är en XML-fil som ger din telefon all information om din app. 165 00:12:07,900 --> 00:12:12,230 Så det är innehåller versions, och de aktiviteter som du kommer att ha. 166 00:12:12,230 --> 00:12:17,480 >> OK, så låt oss börja. 167 00:12:17,480 --> 00:12:21,460 Så vi kommer att vara använder Android Studio. 168 00:12:21,460 --> 00:12:26,960 Så om ni har denna redan installerad, känn dig fri att följa med. 169 00:12:26,960 --> 00:12:29,790 Vi ska försöka börja om från början. 170 00:12:29,790 --> 00:12:35,260 Och så ska jag försöka och skapa ett nytt projekt. 171 00:12:35,260 --> 00:12:40,370 Och jag kommer att ringa mitt projekt Android 101. 172 00:12:40,370 --> 00:12:45,770 Och här sätter vi namnet på den Projektet i ansökan namnfältet. 173 00:12:45,770 --> 00:12:48,500 >> Företag Domän, gör du inte måste verkligen oroa sig. 174 00:12:48,500 --> 00:12:57,000 Detta är bara hur Android identifierar din ansökan. 175 00:12:57,000 --> 00:13:01,350 Så du har ett domännamn kan du skriva i ditt domännamn insidan av det. 176 00:13:01,350 --> 00:13:05,370 Men om du inte gör det, kan du känna fria att skriva in vad du vill. 177 00:13:05,370 --> 00:13:08,226 Så här jag skriver bara in frederickw.com. 178 00:13:08,226 --> 00:13:14,660 >> Och, slutligen, jag välja var Jag vill lagra mitt projekt i. 179 00:13:14,660 --> 00:13:21,080 Och jag ska bara välja mitt skrivbord. 180 00:13:21,080 --> 00:13:28,670 Så Användare, Frederick Widjaja och Desktop. 181 00:13:28,670 --> 00:13:31,340 OK. 182 00:13:31,340 --> 00:13:34,090 Klicka sedan på Nästa. 183 00:13:34,090 --> 00:13:39,630 Här kommer jag att välja på minimi API för att få stöd. 184 00:13:39,630 --> 00:13:44,910 Så i det här fallet, är jag ska välja API 15. 185 00:13:44,910 --> 00:13:51,530 Och det är bra om du faktiskt bara väljer 4.4 som är den senaste API. 186 00:13:51,530 --> 00:13:53,560 Eller 5, faktiskt. 187 00:13:53,560 --> 00:13:57,714 Men då behöver du bara oroa dig vilka telefoner du verkligen stöder, 188 00:13:57,714 --> 00:13:59,130 och vilka telefoner du riktar dig. 189 00:13:59,130 --> 00:14:04,230 190 00:14:04,230 --> 00:14:06,260 Klicka på Nästa. 191 00:14:06,260 --> 00:14:09,780 >> OK, så vi kommer till detta skärmen, och vi är bara 192 00:14:09,780 --> 00:14:15,110 kommer att använda skapa ett aktivitet genom detta. 193 00:14:15,110 --> 00:14:19,890 Så jag ska klicka tom aktivitet och sedan på Nästa. 194 00:14:19,890 --> 00:14:23,110 Vi kommer att kalla det viktigaste aktivitet, tror jag det är bra. 195 00:14:23,110 --> 00:14:27,800 Bara kommer att kalla det, tryck Finish här. 196 00:14:27,800 --> 00:14:36,250 Vänta det att läsa, och det vi går. 197 00:14:36,250 --> 00:14:40,600 >> Så här märker vi tre olika mappar. 198 00:14:40,600 --> 00:14:44,290 Vi har manifestet mappen som innehåller vår manifest. 199 00:14:44,290 --> 00:14:48,360 Om du öppnar det, vi får se våra paket. 200 00:14:48,360 --> 00:14:54,000 Eller hur Android identifierar din ansökan 201 00:14:54,000 --> 00:14:58,990 och sedan har vi det här Ansökan tag, vilket 202 00:14:58,990 --> 00:15:05,420 innehåller titeln på vår ansökan liksom ikon för programmet. 203 00:15:05,420 --> 00:15:08,050 204 00:15:08,050 --> 00:15:11,950 >> Vi kan faktiskt köra detta ansökan rakt. 205 00:15:11,950 --> 00:15:14,600 Så varför inte vi försöka göra det? 206 00:15:14,600 --> 00:15:16,310 Jag kommer att använda Genymotion. 207 00:15:16,310 --> 00:15:22,150 Om du tog din egen telefon, kan du länka upp den och köra den om du vill. 208 00:15:22,150 --> 00:15:31,213 Men jag ska bara använda ett emulator, och jag kommer att starta detta. 209 00:15:31,213 --> 00:15:31,713 Ooh. 210 00:15:31,713 --> 00:15:41,030 211 00:15:41,030 --> 00:15:42,780 Jo jag tror att det är kommer att ta ett tag, 212 00:15:42,780 --> 00:15:49,580 så jag tror att vi ska bara gå rakt till att förklara mer om detta. 213 00:15:49,580 --> 00:15:56,200 Så här har vi Java katalogen, eller där källfilerna finns. 214 00:15:56,200 --> 00:16:02,500 Här har vi den huvudsakliga verksamheten i sig. 215 00:16:02,500 --> 00:16:07,120 Du kan se att det utökar aktivitetsklass. 216 00:16:07,120 --> 00:16:12,750 Så vår huvudverksamhet är en skärm som kommer att vara i vår ansökan. 217 00:16:12,750 --> 00:16:21,790 Och så här ser vi att ett antal funktioner är automatiskt genererad för oss. 218 00:16:21,790 --> 00:16:26,037 Vi har den onCreate funktionen, och som kommer att kallas whenever-- 219 00:16:26,037 --> 00:16:27,870 STUDENTEN Har du något emot göra texten större? 220 00:16:27,870 --> 00:16:28,940 FRED WIDJAJA: OK, visst. 221 00:16:28,940 --> 00:16:38,380 222 00:16:38,380 --> 00:16:41,640 Jag ska försöka öka teckenstorleken. 223 00:16:41,640 --> 00:17:03,570 224 00:17:03,570 --> 00:17:06,490 Tror att skulle vara bra. 225 00:17:06,490 --> 00:17:07,020 Så bra? 226 00:17:07,020 --> 00:17:09,480 >> STUDENT: Bara en liten bit högre, liksom 20 eller nåt. 227 00:17:09,480 --> 00:17:09,829 >> FRED WIDJAJA: 20? 228 00:17:09,829 --> 00:17:10,329 OK. 229 00:17:10,329 --> 00:17:17,380 230 00:17:17,380 --> 00:17:20,990 OK, okej. 231 00:17:20,990 --> 00:17:24,740 Så här har vi onCreate metod som skulle 232 00:17:24,740 --> 00:17:29,750 anropas när vår verksamhet skapas i [? visa?]. 233 00:17:29,750 --> 00:17:32,100 Vi har onCreateOptionsMenu, och vi kommer 234 00:17:32,100 --> 00:17:38,370 se att det finns faktiskt en åtgärdsfältet och sedan 235 00:17:38,370 --> 00:17:42,920 Vi kan lägga till vissa menyalternativ på den. 236 00:17:42,920 --> 00:17:45,710 Och så här har vi onOptionsItemSelected. 237 00:17:45,710 --> 00:17:52,210 Så detta är som en händelseavlyssnare, så när ett alternativ i vår åtgärdsfältet 238 00:17:52,210 --> 00:17:58,450 klickas, detta Funktionen kommer att kallas, 239 00:17:58,450 --> 00:18:01,270 och det kommer att skickas med en vissa objekt som klickade. 240 00:18:01,270 --> 00:18:05,670 241 00:18:05,670 --> 00:18:11,576 >> OK, jag ska see-- som inte fungerar bra. 242 00:18:11,576 --> 00:18:13,028 Låt oss försöka starta. 243 00:18:13,028 --> 00:18:16,416 244 00:18:16,416 --> 00:18:17,384 Åh kära. 245 00:18:17,384 --> 00:18:21,740 246 00:18:21,740 --> 00:18:23,560 OK. 247 00:18:23,560 --> 00:18:24,320 Detta är oroande. 248 00:18:24,320 --> 00:18:39,390 249 00:18:39,390 --> 00:18:41,500 OK, så i alla fall. 250 00:18:41,500 --> 00:18:44,940 Här har vi layouten för vår verksamhet i sig. 251 00:18:44,940 --> 00:18:50,150 Detta är vår huvudverksamhet, och här Vi märker att det finns åtgärdsfältet. 252 00:18:50,150 --> 00:18:54,460 Och så har vi det här hello världs etikett, och vi kan faktiskt 253 00:18:54,460 --> 00:18:57,830 redigera text här. 254 00:18:57,830 --> 00:19:03,260 Om du går och bläddra ner till Hello World, 255 00:19:03,260 --> 00:19:06,360 Vi kan ändra det till vad vi vill. 256 00:19:06,360 --> 00:19:10,070 Till exempel kan det vara, Hej. 257 00:19:10,070 --> 00:19:12,820 Välkommen. 258 00:19:12,820 --> 00:19:14,345 Och där går vi, det ändrar. 259 00:19:14,345 --> 00:19:20,380 260 00:19:20,380 --> 00:19:20,880 Åh kära. 261 00:19:20,880 --> 00:19:24,310 262 00:19:24,310 --> 00:19:26,010 Denna stil fungerar inte. 263 00:19:26,010 --> 00:19:28,320 OK, det är oroande. 264 00:19:28,320 --> 00:19:32,000 OK, i alla fall, kan vi gå vidare utan det. 265 00:19:32,000 --> 00:19:38,560 Så för nu, låt oss försöka göra några riktigt grundläggande saker. 266 00:19:38,560 --> 00:19:42,450 Så här kommer vi att ha en etikett, och då är vi 267 00:19:42,450 --> 00:19:47,005 kommer att ha en text view-- ledsen, inte en text vy, 268 00:19:47,005 --> 00:19:49,310 vi kommer att ha en redigera text. 269 00:19:49,310 --> 00:19:53,900 Och det är en komponent för dig att skriva och sånt. 270 00:19:53,900 --> 00:19:56,590 271 00:19:56,590 --> 00:20:07,240 Så vi har en vanlig text, och sedan vi bara lägga den på vår gränssnitt. 272 00:20:07,240 --> 00:20:13,520 >> Här vill jag också lägga till lite marginal till toppen så att det ser trevligare. 273 00:20:13,520 --> 00:20:19,190 Så vi kommer att gå vidare till egenskaper, och sedan vid den övre marginalen, 274 00:20:19,190 --> 00:20:23,120 vi kommer att lägga in 20 UP. 275 00:20:23,120 --> 00:20:28,170 Så nu, UP är bara en måttenhet i Android, 276 00:20:28,170 --> 00:20:31,240 och de står för täthet oberoende pixlar. 277 00:20:31,240 --> 00:20:35,380 Så, som ni kanske vet, Android, det finns många olika typer av skärmar 278 00:20:35,380 --> 00:20:38,410 och sedan har de olika skärm densiteter. 279 00:20:38,410 --> 00:20:42,584 Så här är det bara kommer att bli en densitet oberoende pixel, 280 00:20:42,584 --> 00:20:44,750 så det kommer att bli samma genom alla skärmar. 281 00:20:44,750 --> 00:20:49,046 282 00:20:49,046 --> 00:20:55,270 >> Kommer att utvidga denna redigera text, och då jag också kommer att lägga till en knapp. 283 00:20:55,270 --> 00:21:02,900 284 00:21:02,900 --> 00:21:04,370 Och det kommer att säga OK. 285 00:21:04,370 --> 00:21:09,639 286 00:21:09,639 --> 00:21:10,597 20 UP. 287 00:21:10,597 --> 00:21:14,430 288 00:21:14,430 --> 00:21:16,630 OK. 289 00:21:16,630 --> 00:21:20,060 Så nu har vi tre olika komponenter. 290 00:21:20,060 --> 00:21:25,630 Och hur vi kan hänvisa till dessa i våran aktivitetsklass 291 00:21:25,630 --> 00:21:29,620 är genom att använda denna metod kallas findViewByID. 292 00:21:29,620 --> 00:21:36,790 Så jag ska definiera vissa områden. 293 00:21:36,790 --> 00:21:48,290 Så vi har i Textview, så låt oss säga helloText. 294 00:21:48,290 --> 00:21:55,400 295 00:21:55,400 --> 00:21:59,930 Och sedan om du använder Android Studio, Du kan använda genvägen suppleant, 296 00:21:59,930 --> 00:22:01,120 anger. 297 00:22:01,120 --> 00:22:07,400 Och klicka på Importera klass för att automatiskt importera motsvarande klasser 298 00:22:07,400 --> 00:22:07,950 att vi behöver. 299 00:22:07,950 --> 00:22:10,590 300 00:22:10,590 --> 00:22:20,800 Och så här kommer jag att lägga ett ID till Detta Textview och kallar det text_hello. 301 00:22:20,800 --> 00:22:28,320 302 00:22:28,320 --> 00:22:32,050 Nu när vi har definierat ett ID för denna Textview, 303 00:22:32,050 --> 00:22:38,020 vi kan använda detta för att hänvisa till den Textview som vi just definierat. 304 00:22:38,020 --> 00:22:47,970 Så helloText lika Textview findViewByID, 305 00:22:47,970 --> 00:22:52,630 och ange sedan vi det ID som vi vill, vilket är r.ID.text_hello. 306 00:22:52,630 --> 00:22:55,360 307 00:22:55,360 --> 00:22:59,560 >> Så detta är mycket lik JavaScript och jQuery, där vi kan faktiskt bara 308 00:22:59,560 --> 00:23:05,430 hänvisa till vissa delar i layouten bara 309 00:23:05,430 --> 00:23:08,330 med hjälp av ID som vi har angett. 310 00:23:08,330 --> 00:23:17,240 Så i allmänhet, för att få tillgång till en visst föremål eller ett visst fält 311 00:23:17,240 --> 00:23:22,030 i vår layout, du kommer att ha att använda denna findViewByID metoden. 312 00:23:22,030 --> 00:23:26,290 Och sedan ska vi göra samma sak saker för de andra två elementen. 313 00:23:26,290 --> 00:23:29,570 314 00:23:29,570 --> 00:23:36,683 Här kommer jag att lägga ID text_name. 315 00:23:36,683 --> 00:23:40,760 316 00:23:40,760 --> 00:23:42,770 Ja. 317 00:23:42,770 --> 00:23:46,610 Liksom för detta en. 318 00:23:46,610 --> 00:23:49,345 319 00:23:49,345 --> 00:23:49,845 Button_ok. 320 00:23:49,845 --> 00:23:53,570 321 00:23:53,570 --> 00:23:58,120 >> Nu vad jag vill att detta ska göra är När vi klickar på OK, 322 00:23:58,120 --> 00:24:02,110 och vi har inmatade någon form av namn i textfältet, 323 00:24:02,110 --> 00:24:10,880 då det kommer att uppdatera denna etikett att säga, hej, namn, välkommen. 324 00:24:10,880 --> 00:24:16,520 Så, tillbaka i våran aktivitetsklass är vi 325 00:24:16,520 --> 00:24:23,210 också kommer att försöka se de element som vi måste hitta. 326 00:24:23,210 --> 00:24:30,860 >> Så vi har Edittext nameText. 327 00:24:30,860 --> 00:24:33,615 328 00:24:33,615 --> 00:24:36,000 Oj. 329 00:24:36,000 --> 00:24:38,500 Ange och suppleant, import klass. 330 00:24:38,500 --> 00:24:41,060 Och då också OK. 331 00:24:41,060 --> 00:24:45,660 332 00:24:45,660 --> 00:24:48,980 Likaså ska vi göra samma sak här. 333 00:24:48,980 --> 00:24:54,900 nameText lika Edittext findViewByID, r.ID.text_name. 334 00:24:54,900 --> 00:25:01,430 335 00:25:01,430 --> 00:25:03,380 Och sedan på OK. 336 00:25:03,380 --> 00:25:10,180 337 00:25:10,180 --> 00:25:13,840 findViewByID, r.ID och sedan button_ok. 338 00:25:13,840 --> 00:25:16,400 339 00:25:16,400 --> 00:25:22,240 >> OK, så nu har vi alla tre element som vi vill hänvisa till. 340 00:25:22,240 --> 00:25:27,630 Så nu ska jag bifoga en on-klicka lyssnaren till vår knapp 341 00:25:27,630 --> 00:25:30,440 att lyssna efter användaren klickar. 342 00:25:30,440 --> 00:25:35,780 För detta använder vi bara setOnClickListener händelse. 343 00:25:35,780 --> 00:25:38,860 344 00:25:38,860 --> 00:25:44,010 Nu, här säger vi behöver specificera setOnClickListener, 345 00:25:44,010 --> 00:25:51,030 och du kan göra det genom att bara ha en nya onClickListener, och tryck på Enter. 346 00:25:51,030 --> 00:25:56,935 >> Och då har du här anonym klass, eller anonymt objekt. 347 00:25:56,935 --> 00:25:59,530 348 00:25:59,530 --> 00:26:02,790 Och vi har också denna onClick Metoden är och som i grunden 349 00:26:02,790 --> 00:26:05,580 vad det kommer att kallas när vår knappens klickade. 350 00:26:05,580 --> 00:26:15,860 >> Så här vill jag få det namn som var ingången till ett textfält först So 351 00:26:15,860 --> 00:26:17,700 String namn är lika med nameText.getText (). 352 00:26:17,700 --> 00:26:21,670 353 00:26:21,670 --> 00:26:26,400 Återigen, detta är som det Java syntax för att hänvisa 354 00:26:26,400 --> 00:26:29,130 till funktioner inom objektet. 355 00:26:29,130 --> 00:26:36,290 Så nameText.getText, och då är vi kommer att konvertera den till en sträng. 356 00:26:36,290 --> 00:26:41,090 Nu har vi det namn som var ingången av användaren. 357 00:26:41,090 --> 00:26:46,140 >> Och sedan ska vi generera en ny sträng, 358 00:26:46,140 --> 00:26:48,980 så det kommer att kallas hej. 359 00:26:48,980 --> 00:26:56,325 Jag kommer att säga, hej, namn, välkommen. 360 00:26:56,325 --> 00:27:00,810 361 00:27:00,810 --> 00:27:05,265 Och slutligen, du vill att uppdatera helloText. 362 00:27:05,265 --> 00:27:09,190 Så för att göra det, helt enkelt kallar vi helloText.setText (hej). 363 00:27:09,190 --> 00:27:16,940 364 00:27:16,940 --> 00:27:17,440 OK. 365 00:27:17,440 --> 00:27:20,430 366 00:27:20,430 --> 00:27:22,770 Oj. 367 00:27:22,770 --> 00:27:30,645 >> Jag ska försöka och kör Genymotion en sista gång och se om det fungerar. 368 00:27:30,645 --> 00:27:35,160 369 00:27:35,160 --> 00:27:38,810 Om den inte gör det, det är helt bra. 370 00:27:38,810 --> 00:27:39,730 OK. 371 00:27:39,730 --> 00:27:41,970 Så jag antar att det inte fungerar. 372 00:27:41,970 --> 00:27:48,960 373 00:27:48,960 --> 00:27:52,955 Egentligen vill jag försöka göra detta. 374 00:27:52,955 --> 00:27:56,188 375 00:27:56,188 --> 00:27:57,174 Kan vara här. 376 00:27:57,174 --> 00:28:05,548 377 00:28:05,548 --> 00:28:06,048 Genymotion. 378 00:28:06,048 --> 00:28:25,761 379 00:28:25,761 --> 00:28:26,261 OK. 380 00:28:26,261 --> 00:28:33,240 381 00:28:33,240 --> 00:28:33,980 Okej. 382 00:28:33,980 --> 00:28:35,170 Ja, det fungerar. 383 00:28:35,170 --> 00:28:38,020 OK. 384 00:28:38,020 --> 00:28:39,250 Det var skrämmande. 385 00:28:39,250 --> 00:28:40,890 OK. 386 00:28:40,890 --> 00:28:43,270 Jag menade inte att göra det. 387 00:28:43,270 --> 00:28:46,570 OK, så vi har denna Android emulator. 388 00:28:46,570 --> 00:28:49,070 Låt mig stänga av detta. 389 00:28:49,070 --> 00:28:52,290 390 00:28:52,290 --> 00:28:55,720 Så vi har vår Android-emulator. 391 00:28:55,720 --> 00:28:59,750 Så vi ska försöka köra denna app som vi gjorde. 392 00:28:59,750 --> 00:29:04,100 Bara att gå till klicka på knappen Spela, och det kommer att säga, väntar på adb. 393 00:29:04,100 --> 00:29:10,580 394 00:29:10,580 --> 00:29:12,780 Åh, man. 395 00:29:12,780 --> 00:29:13,280 Starta. 396 00:29:13,280 --> 00:29:25,419 397 00:29:25,419 --> 00:29:30,150 OK, jag antar att detta fortfarande inte fungerar. 398 00:29:30,150 --> 00:29:31,280 OK, nevermind, då. 399 00:29:31,280 --> 00:29:33,841 400 00:29:33,841 --> 00:29:38,150 detta kommer att vara synd. 401 00:29:38,150 --> 00:29:41,030 Men så låt oss säga att vi vill ha att skapa en ny verksamhet, 402 00:29:41,030 --> 00:29:45,730 och vi kommer att ha en bild i denna verksamhet. 403 00:29:45,730 --> 00:29:52,120 För att göra det, kan vi bara klicka denna Arkiv och sedan på Ny. 404 00:29:52,120 --> 00:29:57,760 Och så här kan vi välja Aktivitet och sedan Blank aktivitet. 405 00:29:57,760 --> 00:29:59,840 Här kommer vi att kalla det kanske CatActivity. 406 00:29:59,840 --> 00:30:03,030 407 00:30:03,030 --> 00:30:06,537 >> OK, så nu den genererar två andra filer. 408 00:30:06,537 --> 00:30:08,245 En kallas activity_cat, och den andra 409 00:30:08,245 --> 00:30:10,630 kallas catActivity, vilket är en klass. 410 00:30:10,630 --> 00:30:13,250 411 00:30:13,250 --> 00:30:18,648 Så låt oss säga att vi vill lägga en bild av en katt här. 412 00:30:18,648 --> 00:30:21,790 413 00:30:21,790 --> 00:30:25,220 Så när du gör det, kommer vi att använda Image klassen. 414 00:30:25,220 --> 00:30:28,076 415 00:30:28,076 --> 00:30:31,340 Vi kommer att lägga den på här. 416 00:30:31,340 --> 00:30:35,350 Och sedan ställa marginalen till 20 DP. 417 00:30:35,350 --> 00:30:37,920 418 00:30:37,920 --> 00:30:41,240 >> Och nu ska vi hitta en bild av en katt på internet. 419 00:30:41,240 --> 00:30:43,270 Så låt oss se. 420 00:30:43,270 --> 00:30:43,770 Kat. 421 00:30:43,770 --> 00:30:48,280 422 00:30:48,280 --> 00:30:50,270 OK. 423 00:30:50,270 --> 00:30:51,145 Jag antar att detta är bra. 424 00:30:51,145 --> 00:30:59,070 425 00:30:59,070 --> 00:31:01,032 OK. 426 00:31:01,032 --> 00:31:02,780 Så nu har vi vår image. 427 00:31:02,780 --> 00:31:07,720 Så vi kommer att lägga det i vårt projekt. 428 00:31:07,720 --> 00:31:16,140 Kan göra detta genom att höger klicka, och then-- vi 429 00:31:16,140 --> 00:31:25,965 kan faktiskt bara öppna den här, go hämtningar, ledsen, skrivbord. 430 00:31:25,965 --> 00:31:28,310 Kommer att försöka hitta den. 431 00:31:28,310 --> 00:31:28,810 Kat. 432 00:31:28,810 --> 00:31:34,580 433 00:31:34,580 --> 00:31:35,790 Just här. 434 00:31:35,790 --> 00:31:42,820 Jag kommer att kopiera den till min mapp. 435 00:31:42,820 --> 00:31:46,800 Nu kommer det att fråga mig några alternativ. 436 00:31:46,800 --> 00:31:49,250 Nu vill jag bara att detta ska vara i utdragbar mappen, 437 00:31:49,250 --> 00:31:54,390 och det kommer att bli för alla olika skärmupplösningar. 438 00:31:54,390 --> 00:31:57,100 Alternativt kan vi faktiskt bara välja 439 00:31:57,100 --> 00:32:01,270 vilket skärmupplösning du vill här bilden att vara i. 440 00:32:01,270 --> 00:32:06,150 Så kommer att välja utdragbar mappen, klicka på OK. 441 00:32:06,150 --> 00:32:08,660 442 00:32:08,660 --> 00:32:09,910 Bara att gå till name it cat.jpg. 443 00:32:09,910 --> 00:32:12,560 444 00:32:12,560 --> 00:32:15,970 >> OK, så, nu är det läggas in i vår image view. 445 00:32:15,970 --> 00:32:18,800 446 00:32:18,800 --> 00:32:22,020 vi kommer att behöva använda denna källa just här, 447 00:32:22,020 --> 00:32:27,420 och då kan vi använda denna dot dot dot knappen och välj katten bilden. 448 00:32:27,420 --> 00:32:30,010 449 00:32:30,010 --> 00:32:32,620 OK. 450 00:32:32,620 --> 00:32:39,480 Så nu vill jag göra det en sådan att det är precis rätt storlek. 451 00:32:39,480 --> 00:32:50,050 Så jag kommer att välja detta justera visa alternativet bounds just här, 452 00:32:50,050 --> 00:32:54,960 och som automatiskt ställer den till rätt storlek. 453 00:32:54,960 --> 00:32:55,460 OK. 454 00:32:55,460 --> 00:33:02,410 455 00:33:02,410 --> 00:33:09,380 Nu, för att verkligen lansera denna aktivitet från vår tidigare verksamhet, 456 00:33:09,380 --> 00:33:15,470 du kommer att behöva använda något som kallas uppsåt. 457 00:33:15,470 --> 00:33:19,115 Så låt oss säga jag kommer att lägga till en annan knapp som startar aktiviteten. 458 00:33:19,115 --> 00:33:26,640 459 00:33:26,640 --> 00:33:29,150 Jag kommer att lägga upp den här, just här. 460 00:33:29,150 --> 00:33:36,160 Och då det kommer att har texten aktivera den. 461 00:33:36,160 --> 00:33:38,711 462 00:33:38,711 --> 00:33:39,210 Oj. 463 00:33:39,210 --> 00:33:42,470 464 00:33:42,470 --> 00:33:43,320 OK. 465 00:33:43,320 --> 00:33:47,560 >> Nu, hur ska vi egentligen öppna ny verksamhet inom denna verksamhet? 466 00:33:47,560 --> 00:33:52,280 467 00:33:52,280 --> 00:33:54,650 Så samma affär som tidigare. 468 00:33:54,650 --> 00:34:01,120 Vi behöver lägga ett ID till detta knappen, och kallar det button_activate. 469 00:34:01,120 --> 00:34:09,489 470 00:34:09,489 --> 00:34:16,880 Och sedan i våran verksamhet, gå att ha denna nya Button activateButton. 471 00:34:16,880 --> 00:34:21,630 472 00:34:21,630 --> 00:34:26,150 Och sedan också använda findViewByID metoden. 473 00:34:26,150 --> 00:34:29,449 474 00:34:29,449 --> 00:34:33,960 activateButton lika Knapp findViewByID r.ID.button_activate. 475 00:34:33,960 --> 00:34:43,960 476 00:34:43,960 --> 00:34:45,830 >> OK. 477 00:34:45,830 --> 00:34:48,500 Och då kommer vi också att lägg i en onClickListener. 478 00:34:48,500 --> 00:34:56,360 479 00:34:56,360 --> 00:34:57,294 Ny onClickListener. 480 00:34:57,294 --> 00:35:01,870 481 00:35:01,870 --> 00:35:07,145 Och sedan ska vi använda denna sak kallad Intent. 482 00:35:07,145 --> 00:35:10,070 483 00:35:10,070 --> 00:35:11,905 Intent lika ny Intent (detta). 484 00:35:11,905 --> 00:35:17,260 485 00:35:17,260 --> 00:35:20,699 Och sedan namnet på den aktivitet som vi vill visa upp. 486 00:35:20,699 --> 00:35:22,990 Så här i denna, vi kommer att ha catActivity.class. 487 00:35:22,990 --> 00:35:30,412 488 00:35:30,412 --> 00:35:31,147 Ursäkta. 489 00:35:31,147 --> 00:35:33,230 Vi kommer att behöva specificera @ MainActivity.this. 490 00:35:33,230 --> 00:35:36,100 491 00:35:36,100 --> 00:35:41,910 Så nu den .Detta egenskapen hänvisar till den aktuella förekomsten av objektet 492 00:35:41,910 --> 00:35:43,271 själv. 493 00:35:43,271 --> 00:35:43,770 OK. 494 00:35:43,770 --> 00:35:48,020 Fram till denna punkt, några frågor? 495 00:35:48,020 --> 00:35:48,890 Alla bra? 496 00:35:48,890 --> 00:35:49,390 Okej. 497 00:35:49,390 --> 00:35:52,890 498 00:35:52,890 --> 00:35:57,430 >> Och sedan om du vill starta aktiviteten, är det ganska enkelt. 499 00:35:57,430 --> 00:35:59,904 Vi kallar bara den startActivity metoden. 500 00:35:59,904 --> 00:36:04,260 501 00:36:04,260 --> 00:36:07,355 Och då vi passerar i Intent objekt som vi just har definierat. 502 00:36:07,355 --> 00:36:10,640 503 00:36:10,640 --> 00:36:16,140 Tyvärr, vi kan inte riktigt visa denna. 504 00:36:16,140 --> 00:36:23,000 Jag hoppades att vi faktiskt kan köra detta och visa den tillsammans i seminariet, 505 00:36:23,000 --> 00:36:26,661 men tyvärr inte. 506 00:36:26,661 --> 00:36:28,980 Åh, man. 507 00:36:28,980 --> 00:36:29,480 Jag förstår. 508 00:36:29,480 --> 00:36:32,134 Åh, vi ska försöka döda ATB.exe. 509 00:36:32,134 --> 00:36:43,510 510 00:36:43,510 --> 00:36:45,214 OK. 511 00:36:45,214 --> 00:36:45,714 Starta. 512 00:36:45,714 --> 00:36:53,490 513 00:36:53,490 --> 00:36:56,262 Fungerade det? 514 00:36:56,262 --> 00:36:57,710 Åh, OK. 515 00:36:57,710 --> 00:37:00,660 Så nu är det faktiskt sammanställa. 516 00:37:00,660 --> 00:37:02,410 Oh. 517 00:37:02,410 --> 00:37:04,420 Tyvärr, det finns inga enheter körs. 518 00:37:04,420 --> 00:37:06,040 Låt oss försöka starta om min emulator. 519 00:37:06,040 --> 00:37:56,335 520 00:37:56,335 --> 00:37:57,880 Ah, det går vi. 521 00:37:57,880 --> 00:37:59,050 Det föreföll. 522 00:37:59,050 --> 00:38:00,070 OK. 523 00:38:00,070 --> 00:38:06,010 Så jag kommer att lansera min app på min Android-emulator. 524 00:38:06,010 --> 00:38:08,330 Och vi har saker att vi definierat just nu. 525 00:38:08,330 --> 00:38:13,620 Så vi har etiketten, textvyn, textfält, och sedan på knappen. 526 00:38:13,620 --> 00:38:18,449 Så jag ska ingång mitt namn här, 527 00:38:18,449 --> 00:38:19,990 och det vi går, ändrade det texten. 528 00:38:19,990 --> 00:38:25,980 Så om vi skriver i Foo, det kommer att förändras till Foo. 529 00:38:25,980 --> 00:38:29,040 >> Och om jag klickar på Aktivera knapp, vilket 530 00:38:29,040 --> 00:38:34,560 Vi har kopplat att faktiskt lansera en ny verksamhet, förhoppningsvis kommer detta att fungera, 531 00:38:34,560 --> 00:38:35,190 Det vi går. 532 00:38:35,190 --> 00:38:36,760 Det lanserar den nya verksamheten. 533 00:38:36,760 --> 00:38:40,001 534 00:38:40,001 --> 00:38:47,010 För att gå tillbaka, kan vi trycka knappen Tillbaka här. 535 00:38:47,010 --> 00:38:47,510 Eller inte. 536 00:38:47,510 --> 00:38:49,610 Åh, det går vi. 537 00:38:49,610 --> 00:38:51,450 Oj. 538 00:38:51,450 --> 00:38:52,611 Det var dåligt. 539 00:38:52,611 --> 00:38:53,890 OK. 540 00:38:53,890 --> 00:38:58,550 >> Så nu när vi har genomfört några grundläggande saker i Android, 541 00:38:58,550 --> 00:39:04,800 Vi kan försöka göra en del mer komplicerade saker. 542 00:39:04,800 --> 00:39:10,070 Så först, låt oss försöka och passera meddelanden från en aktivitet till en annan. 543 00:39:10,070 --> 00:39:13,760 Så låt oss säga att vi vill passera på ett namn från den huvudsakliga verksamheten 544 00:39:13,760 --> 00:39:16,710 till katten aktivitet. 545 00:39:16,710 --> 00:39:19,740 Och ett namn skulle vara hämtas från denna nameText. 546 00:39:19,740 --> 00:39:23,510 547 00:39:23,510 --> 00:39:30,160 >> OK, så först, vi kommer att hämta namnet här. 548 00:39:30,160 --> 00:39:32,230 Strängnamnet är nameText.getText (). toString (). 549 00:39:32,230 --> 00:39:39,588 550 00:39:39,588 --> 00:39:41,420 OK. 551 00:39:41,420 --> 00:39:52,260 Och då kan vi använda denna sak kallas intent.putExtra (namn), 552 00:39:52,260 --> 00:39:57,650 och då är det faktiskt också vill ha en nyckel för denna extra fält. 553 00:39:57,650 --> 00:40:05,520 >> Så jag kommer att definiera en ny nyckel, vi kallar det EXTRA_NAME. 554 00:40:05,520 --> 00:40:11,570 555 00:40:11,570 --> 00:40:17,160 Så jag kommer att använda detta nyckel, CatActivity.EXTRA_NAME, 556 00:40:17,160 --> 00:40:21,010 och sedan passera i själva namnet. 557 00:40:21,010 --> 00:40:26,370 >> OK, så nu kan vi faktiskt hämta detta inom den nya CatActivity. 558 00:40:26,370 --> 00:40:38,650 För att göra det, vi måste använda uppsåt lika getIntent metod. 559 00:40:38,650 --> 00:40:41,360 Så nu det kommer att hämta avsikten att 560 00:40:41,360 --> 00:40:45,070 användes för att kalla denna nya verksamhet. 561 00:40:45,070 --> 00:40:50,340 Så om du vill hämta strängen att vi faktiskt sätter inuti uppsåt, 562 00:40:50,340 --> 00:41:00,255 Du kan använda en intent.getStringExtra och sedan passera i samma tonart, 563 00:41:00,255 --> 00:41:04,080 564 00:41:04,080 --> 00:41:10,570 >> OK, så nu ska vi säga att vi dig vill ändra detta fält. 565 00:41:10,570 --> 00:41:14,422 566 00:41:14,422 --> 00:41:15,630 Ändra det här fältet till höger här. 567 00:41:15,630 --> 00:41:18,400 568 00:41:18,400 --> 00:41:20,900 Och låt oss göra det teckensnitt Storleken på detta fält större. 569 00:41:20,900 --> 00:41:26,480 Så låt oss säga att jag vill att detta ska vara 20 DP. 570 00:41:26,480 --> 00:41:28,340 OK. 571 00:41:28,340 --> 00:41:32,070 Och jag kommer att lägga till en ID för denna Textview, 572 00:41:32,070 --> 00:41:35,690 och jag kommer att kalla det text_cat. 573 00:41:35,690 --> 00:41:41,170 574 00:41:41,170 --> 00:41:41,670 Ursäkta. 575 00:41:41,670 --> 00:41:45,630 576 00:41:45,630 --> 00:41:51,310 >> Och tillbaka i CatActivity, Samma affär som tidigare. 577 00:41:51,310 --> 00:41:55,090 Vi kommer att definiera vissa områden. 578 00:41:55,090 --> 00:41:58,890 Här det kommer att bli en Textview catText. 579 00:41:58,890 --> 00:42:03,500 580 00:42:03,500 --> 00:42:11,750 Och sedan catText lika Textview findViewByID, r.ID.text_cat. 581 00:42:11,750 --> 00:42:17,230 582 00:42:17,230 --> 00:42:18,780 OK. 583 00:42:18,780 --> 00:42:24,100 Och sedan tillbaka in här, jag är kommer att ställa in text höger 584 00:42:24,100 --> 00:42:28,120 efter att vi hämta för den från uppsåt. 585 00:42:28,120 --> 00:42:30,207 586 00:42:30,207 --> 00:42:30,790 setText (namn). 587 00:42:30,790 --> 00:42:36,020 588 00:42:36,020 --> 00:42:38,056 >> OK, så låt oss försöka att ut. 589 00:42:38,056 --> 00:42:39,070 Klicka på knappen Spela. 590 00:42:39,070 --> 00:42:41,830 591 00:42:41,830 --> 00:42:43,445 Jag kommer att använda samma enhet. 592 00:42:43,445 --> 00:42:47,770 593 00:42:47,770 --> 00:42:50,380 Tillbaka in här. 594 00:42:50,380 --> 00:42:57,030 Så låt oss säga att jag inte input-- om vi inte anger något namn, 595 00:42:57,030 --> 00:42:59,330 låt oss se vad som händer. 596 00:42:59,330 --> 00:43:02,150 Så nu finns det ingenting som visas. 597 00:43:02,150 --> 00:43:10,390 Så vi går tillbaka och mata vårt namn, det bara kommer att säga Fred. 598 00:43:10,390 --> 00:43:14,670 Så vi kan faktiskt passera meddelanden från en aktivitet till en annan. 599 00:43:14,670 --> 00:43:15,170 OK. 600 00:43:15,170 --> 00:43:18,040 601 00:43:18,040 --> 00:43:22,590 >> Så det finns en massa andra vyer som du kan använda i Android. 602 00:43:22,590 --> 00:43:29,740 Så nu har vi förloppsindikatorer, har vi listvyer, har vi växlingsknapparna, 603 00:43:29,740 --> 00:43:33,950 och om du verkligen ville att lära sig mer om det, 604 00:43:33,950 --> 00:43:36,790 du faktiskt kan besöka dessa webbsidor. 605 00:43:36,790 --> 00:43:41,160 De innehåller många olika resurser. 606 00:43:41,160 --> 00:43:45,230 Så till exempel, API vägleda rätt här faktiskt 607 00:43:45,230 --> 00:43:50,885 ger dig några kodexempel för vissa funktioner i Android biblioteket. 608 00:43:50,885 --> 00:43:53,692 609 00:43:53,692 --> 00:43:57,560 >> Och ett par tutorials jag funnit användbara när man lär om Android. 610 00:43:57,560 --> 00:44:06,890 Det är den officiella handledning själva, och även denna andra handledning här. 611 00:44:06,890 --> 00:44:10,200 Och slutligen, kan du faktiskt använda olika bibliotek 612 00:44:10,200 --> 00:44:12,710 för din Android applikation. 613 00:44:12,710 --> 00:44:16,370 Nu, dessa faktiskt förlänga funktionaliteten i din app 614 00:44:16,370 --> 00:44:19,665 utan att behöva verkligen skriva mycket kod. 615 00:44:19,665 --> 00:44:21,540 Nackdelen är, om naturligtvis att du faktiskt 616 00:44:21,540 --> 00:44:23,890 måste lära biblioteken själv. 617 00:44:23,890 --> 00:44:29,170 >> Så till exempel om du vill göra användning av Dropbox moln teknik, 618 00:44:29,170 --> 00:44:33,400 då kan du använda Dropbox API. 619 00:44:33,400 --> 00:44:36,530 Liknande med Facebook API. 620 00:44:36,530 --> 00:44:40,490 Och sedan finns det faktiskt ett par olika andra diverse bibliotek 621 00:44:40,490 --> 00:44:41,700 som du kan använda. 622 00:44:41,700 --> 00:44:45,560 Om du försöker att få, liksom, JSON från en viss webbplats, 623 00:44:45,560 --> 00:44:49,560 då jag tror att Google JSON biblioteket skulle vara ganska bra. 624 00:44:49,560 --> 00:44:56,200 Så nu, omvandlar att en JSON formaterad text i en Java-objekt, 625 00:44:56,200 --> 00:44:58,600 och vice versa. 626 00:44:58,600 --> 00:45:01,110 >> Och sedan finns det Retrofit och Picasso. 627 00:45:01,110 --> 00:45:07,240 Och det är om du vill use-- det är för om du använder en resten API. 628 00:45:07,240 --> 00:45:13,300 Och Picasso, om du använder bilder för din Android applikation. 629 00:45:13,300 --> 00:45:14,350 Okej. 630 00:45:14,350 --> 00:45:18,030 Tack så mycket, och ha kul kodning. 631 00:45:18,030 --> 00:45:19,723