چگونه اپلیکیشن اندروید بنویسیم. آموزش ساخت اپلیکیشن موبایل در اندروید استودیو
این آموزش به شما اصول نوشتن اپلیکیشن اندروید را با استفاده از محیط توسعه اندروید استودیو آموزش می دهد. دستگاه های اندرویدی روز به روز رایج تر می شوند و تقاضا برای برنامه های جدید فقط در حال افزایش است. Android Studio یک محیط توسعه رایگان و آسان برای استفاده است.
برای این آموزش، بهتر است حداقل دانش گذرا از جاوا داشته باشید زیرا این زبان مورد استفاده اندروید است. در این آموزش کد زیادی وجود نخواهد داشت زیرا من فرض میکنم که شما مقداری دانش جاوا دارید یا آماده هستید چیزی را پیدا کنید که قبلاً نمیدانید. بسته به سرعت دانلود و نصب تمام برنامه های لازم، ایجاد یک برنامه 30-60 دقیقه طول می کشد. پس از دنبال کردن این آموزش در مورد نحوه ایجاد اولین برنامه اندرویدی خود، ممکن است برای خود یک سرگرمی جدید و سرگرم کننده پیدا کنید یا حتی به عنوان یک توسعه دهنده نوظهور اپلیکیشن موبایل شروع به کار کنید.
مرحله 1: اندروید استودیو را نصب کنید
- شما باید JDK را نصب کنید ( کیت توسعه جاوا) و JRE (محیط زمان اجرا جاوا). می توانید آن را از این لینک دانلود کنید. در آنجا نسخه سیستم عامل خود را انتخاب می کنید، موافقت نامه مجوز را می پذیرید، دانلود و نصب می کنید.
- حالا به اینجا http://developer.android.com/sdk/index.html بروید و دانلود کنید (مراقب باشید حدود 3 گیگابایت باید دانلود کنید).
- ما نصب را شروع می کنیم و دستورالعمل ها را دنبال می کنیم.
مرحله 2: ایجاد یک پروژه جدید
- اندروید استودیو را باز کنید.
- در منو " شروع سریع"، انتخاب کنید " یک پروژه اندروید استودیو جدید را شروع کنید».
- در پنجره " ایجاد پروژه جدید"(پنجره ای که باز شد)، نام پروژه خود را بگذارید" سلام دنیا».
- نام شرکت اختیاری است.*
- کلیک " بعد».
- مطمئن شوید که چک باکس فقط روی " گوشی و تبلت».
- اگر قصد دارید اولین برنامه خود را روی گوشی خود آزمایش کنید، مطمئن شوید که نسخه صحیح اندروید (نه قدیمی تر از نسخه گوشی) انتخاب شده است.
- کلیک " بعد».
- انتخاب کنید " فعالیت خالی».
- کلیک " بعد».
- همه فیلدهای دیگر را همان طور که هستند رها کنید.
- کلیک " پایان».
*نام شرکت معمولی برای پروژه های اندرویدی "example.name.here.com" است.
مرحله 3: ویرایش تبریک
- به برگه بروید فعالیت_اصلیxml، به احتمال زیاد در حال حاضر فعال است.
- مطمئن شوید که زبانه پایین صفحه فعال است طرح(به احتمال زیاد این درست است).
- عبارت " را بکشید سلام، جهان! » از گوشه سمت چپ بالای گوشی تا مرکز صفحه نمایش.
- در سمت چپ صفحه یک درخت پوشه وجود دارد. باز کردن پوشه ای به نام " ارزش های».
- در این پوشه روی فایل دوبار کلیک کنید " رشته هایxml».
- در این فایل، خط حاوی متن را پیدا کنید. سلام دنیا!"و به این متن اضافه کنید" خوش آمدیبهمنبرنامه! ».
- بازگشت به " فعالیت_اصلیxml».
- مطمئن شوید متن شما در مرکز صفحه گوشی شما قرار دارد و حاوی متن " سلامجهان! خوش آمدیبهمنبرنامه! ».
مرحله 4: یک دکمه اضافه کنید
- در " فعالیت_اصلیxml"برگه را انتخاب کنید" طرح».
- در ستون سمت چپ پنجره ای که گوشی در آن قرار دارد، پوشه ای به نام " ابزارک ها" دکمه های مختلفی در آنجا وجود دارد.
- گرفتن " دکمه» و آن را روی صفحه گوشی خود بکشید. باید بر روی صفحه نمایش درست زیر متن شما متمرکز شود.
- مطمئن شوید که دکمه همچنان انتخاب شده است (قاب آبی رنگ اطراف آن).
- در گوشه سمت راست پایین پنجره ای با ویژگی های شی انتخاب شده وجود دارد. به پایین اسکرول کنید و خطی به نام " متن».
- متن را تغییر دهید" دکمه جدید" بر " صفحه بعد».
مرحله 5: یک فعالیت دوم ایجاد کنید
- در بالای درخت سیستم فایل پروژه، روی پوشه ای به نام " کلیک راست کنید. برنامه».
- انتخاب کنید جدید > فعالیت > فعالیت خالی.
- در پنجرهای که ظاهر میشود، در خط بالا، « SecondActivity».
- کلیک " پایان».
- برو به " فعالیت_دومینxml"و مطمئن شوید که برگه " در پایین انتخاب شده است طرح».
- همانطور که در مراحل قبل انجام دادیم، متن را از گوشه سمت چپ بالای گوشی به مرکز صفحه منتقل کنید.
- مطمئن شوید که بلوک متن هنوز انتخاب شده است (قاب آبی) و در گوشه سمت راست پایین ویژگی های شی، به دنبال خط " شناسه"و وارد آنجا شوید" متن2 ».
- در گوشه سمت چپ بالا (در درخت پروژه)، دوبار کلیک کنید " رشته هایxml».
- زیر خط
سلام دنیا! به برنامه من خوش آمدید! خط زیر را اضافه کنید
به صفحه دوم خوش آمدید! - بازگشت به " activity_second.xml».
- دوباره بلوک متن را انتخاب کنید.
- در گوشه سمت راست پایین ویژگی های شی، خط " را پیدا کنید. متن"و وارد آنجا شوید «@ رشته/دومین_page».
- مطمئن شوید که جعبه متن اکنون می گوید " خوش آمدیبهرادومینصفحه! ” و وبلاگ در مرکز صفحه قرار دارد.
مرحله 6: عمل دکمه را بنویسید
![](https://i1.wp.com/cpykami.ru/wp-content/uploads/2015/04/Screenshot_39.png)
مرحله 7: آزمایش برنامه
- در نوار ابزار بالای پنجره اندروید استودیو، روی نماد پخش سبز کلیک کنید.
- در پنجره " انتخاب کنیددستگاه» مورد را انتخاب کنید « راه اندازیشبیه ساز» و دستگاه را انتخاب کنید.
- روی دکمه کلیک کنید خوب».
- هنگامی که شبیه ساز شروع می شود (ممکن است زمان زیادی طول بکشد)، برنامه به طور خودکار در دستگاه مجازی باز می شود.
- مطمئن شوید که تمام متن ها به درستی نمایش داده می شوند و با کلیک بر روی دکمه به صفحه بعدی می روید.
توجه: در صورت دریافت پیام " ماژول هسته HAX نصب نشده است!"، پس دو گزینه ممکن وجود دارد. واقعیت این است که فقط پردازنده های مدرن اینتل از این مجازی سازی پشتیبانی می کنند و فقط باید آن را در BIOS فعال کنید. اگر پردازنده ای دارید که از این عملکرد پشتیبانی نمی کند، باید برنامه را روی یک تلفن واقعی آزمایش کنید یا به جای شبیه ساز داخلی از یک شبیه ساز شخص ثالث استفاده کنید.
نحوه دریافت فایل apk در اندروید استودیو
به نظر من در این مقاله به خوبی به این موضوع پرداخته شده است، بنابراین آن را تکرار نمی کنم. برای درس اول راحت ترین کار را دیدم روش دستی.
پس از دریافت فایل، می توانید آن را در گوشی خود کپی کرده و برنامه را نصب کنید.
مرحله 8: نتیجه
تبریک می گویم! شما به تازگی نوشتن اولین برنامه اندروید خود را با برخی از عملکردهای اساسی به پایان رسانده اید. برنامه تمام شده باید دارای صفحه خوش آمدگویی کاربر و دکمه ای باشد که کاربر را به صفحه دوم می برد.
شما به طور خلاصه با توسعه برنامه های کاربردی برای اندروید آشنا شده اید و ممکن است میل به یادگیری هر آنچه برای توسعه بیشتر در این مسیر ضروری است را در خود بیدار کرده باشید.
- آموزش
سلام. امروز در سایت بنیاد لینوکس با یک پست در مورد یک دوره برنامه نویسی برای اندروید برخورد کردم و در کنار آن نظرات زیادی که دوست دارم ترجمه این درس ها را ببینم. از الان بعد از چهار سال توسعه برای میکروکنترلرها شروع به مطالعه برنامه نویسی برای دستگاه های موبایل کردم، همزمان تصمیم گرفتم قسمت اول درس را ترجمه کنم.
برنامه نویسی اندروید برای مبتدیان. قسمت 1
تلفن های هوشمند و تبلت های اندرویدی به طور فزاینده ای در کیف و جیب ما یافت می شوند و برنامه نویسی اندروید نیز محبوبیت بیشتری پیدا می کند. این یک پلتفرم توسعه عالی است - API به خوبی مستند شده و استفاده از آن آسان است، و ایجاد چیزی که بتوانید روی گوشی هوشمند خود اجرا کنید بسیار سرگرم کننده است. در ابتدا، با ایجاد و آزمایش کد با استفاده از شبیه ساز در رایانه شخصی لینوکس، می توانید بدون آن کار کنید. اولین قسمت از یک مقدمه دو قسمتی نحوه ایجاد یک برنامه تایمر ساده را توضیح میدهد و به شما مقدمهای با API اندروید میدهد. این دوره درک پایه ای از جاوا، XML و فن آوری های برنامه نویسی را در نظر می گیرد، اما حتی اگر درک بسیار مبهمی از آن دارید، با خیال راحت امتحان کنید.شروع کار و محیط توسعه
کمی در مورد نسخه ها: آخرین نسخه اندروید 4.2 (Jelly Bean) است، اما همانطور که از این نمودار می بینید، هنوز فراگیر نشده است. بهتر است توسعه را روی یکی از نسخههای 4.0 (Ice Cream Sandwich) یا 2.3 (Gingerbeard) شروع کنید، به خصوص که نسخههای Android با نسخههای قبلی سازگار هستند (یعنی کد شما برای نسخه 2.3 روی 4.2 کار میکند)، و برنامههای توسعهیافته برای نسخههای بعدی. همیشه روی یک قدیمی تر کار نمی کند. کد نشان داده شده در اینجا باید روی نسخه های 4.0 و 2.3 کار کند.ساده ترین راه برای دریافت یک محیط توسعه، نصب Android Bundle است که می توانید آن را دانلود کنید. همچنین به JDK 6 (نه فقط JRE) نیاز خواهید داشت. فراموش نکنید که اندروید با gcj سازگار نیست. اگر قبلاً از Eclipse یا IDE دیگری استفاده میکنید، میتوانید آن را برای Android تنظیم کنید. نحوه انجام این کار توضیح داده شده است. اکنون با استفاده از Eclipse یا از خط فرمان پروژه ای به نام Countdown ایجاد کنید. تنظیمات را روی BuildSDK 4.0.3 و حداقل SDK 2.2 قرار دادم و (در Eclipse) از قالب BlankActivity استفاده کردم.
اولین پروژه من برای اندروید: رابط
اولین برنامه ما برای اندروید یک تایمر خواهد بود که پس از فشار دادن یک دکمه، شمارش معکوس را از 10 ثانیه نشان می دهد. قبل از نوشتن کد، باید یک رابط ایجاد کنیم - آنچه کاربر هنگام راه اندازی برنامه ما می بیند. شما باید res/layout/activity_countdown.xml را باز کنید و یک الگوی XML ایجاد کنید - با استفاده از ویرایشگر Eclipse یا یک ویرایشگر متن/XML، موارد زیر را وارد کنید:به رشته /start و string /__00_30 توجه کنید. مقادیر آنها در res/values/strings.xml قرار خواهند گرفت:
این یک روش رایج برای دسترسی به منابع در اندروید است: بهتر است از منابع متغیر رشته ای استفاده کنید تا رشته های کدگذاری شده سخت.
اولین پروژه اندروید من: کد
حالا بیایید فایل CountdownActivity.java را در ویرایشگر باز کنیم - و آماده نوشتن کد برنامه خود هستیم. شما باید یک "خرد" تولید شده به طور خودکار برای متد onCreate() ببینید. همیشه به محض ایجاد شی Activity فراخوانی می شود و می توانید هر تابعی را که باید هنگام شروع برنامه اجرا شود در آن قرار دهید. (Eclipse همچنین میتواند یک متد ()onCreateOptionsMenu خالی ایجاد کند، اما فعلاً آن را نادیده میگیریم.) کد زیر را وارد کنید:کلاس عمومی CountdownActivity فعالیت را گسترش می دهد (int نهایی استاتیک خصوصی MILLIS_PER_SECOND = 1000؛ خصوصی استاتیک نهایی SECONDS_TO_COUNTDOWN = 30؛ خصوصی TextView countdownDisplay؛ خصوصی تایمر CountDownTimer؛ @Override public void onCreateInsavet. خورد)؛ setContentView(R .layout.activity_countdown)؛ countdownDisplay = (TextView) findViewById(R.id.time_display_box)؛ Button startButton = (Button) findViewById(R.id.startbutton)؛ startButton.setOnClickListener(new Public View.OnC) مشاهده نمای) ( امتحان کنید ( showTimer(SECONDS_TO_COUNTDOWN * MILLIS_PER_SECOND)؛ ) catch (NumberFormatException e) (// متد ورودی نامعتبر (غیر عدد صحیح) را نادیده می گیرد و منتظر می ماند // برای چیزی که می تواند استفاده کند) ))؛ ))
می توانید ببینید که ایجاد اولین پروژه ما چقدر آسان بود: API Android شامل یک CountDownTimer است که می توانیم از آن استفاده کنیم. ما آن و قسمت نمایش شمارش معکوس را به عنوان ویژگی های خصوصی کلاس Activity اعلام کردیم. در متد onCreate() از متد setContentView برای گنجاندن قالب XML خود استفاده کردیم. این نحو R.foo.bar راه استاندارد برای دسترسی به منابع XML در اندروید است و ما بارها آن را خواهیم دید.
findViewById روش دیگری است که اغلب از آن استفاده خواهید کرد. در اینجا ارجاعاتی را به فیلد خروجی تایمر و دکمه Start که در قالب XML توضیح داده شده است، برمی گرداند. برای یک دکمه، تا بتوانیم کلیک آن را پردازش کنیم، باید یک OnClickListener “Interceptor” و متد onClick() آن مشخص شود. در اینجا به سادگی متد showTimer() را با تعداد میلی ثانیه داده شده فراخوانی می کند (اکنون در کد هاردکد شده است).
پس کاری که showTimer() انجام می دهد:
خصوصی void showTimer(int countdownMillis) ( if(timer != null) ( timer.cancel(); ) timer = new CountDownTimer(countdownMillis, MILLIS_PER_SECOND) ( @Override public void onTick(long millisUntilFinished) (countdownplay.countdownTextnDi : " + millisUntilFinished / MILLIS_PER_SECOND); ) @Override public void onFinish() (countdownDisplay.setText("KABOOM!"); ) ).start(); )
کلاس CountDownTimer تقریبا تمام کارها را برای ما انجام می دهد که بسیار خوب است. در ابتدا بررسی می کنیم که آیا تایمر از قبل وجود دارد یا خیر و اگر وجود داشته باشد، آن را بازنشانی می کنیم. در مرحله بعد، یک تایمر جدید با تعداد میلی ثانیه مشخص شده برای شمارش معکوس (از پارامتر متد showTimer()) و با تعداد میلی ثانیه مشخص شده بین فواصل شمارش معکوس ایجاد می کنیم. وقتی زمان بین فواصل سپری شد، متد onTick() فراخوانی می شود.
CountDownTimer یک کلاس انتزاعی است و متدهای __onTick() و __onFinish() باید در زیر کلاس آن پیاده سازی شوند. متد onTick() را باطل می کنیم که بعد از هر بازه یک عدد خروجی را کاهش می دهد و متد onFinish() که پس از پایان شمارش معکوس پیامی را نمایش می دهد. سپس start() تایمر را شروع می کند.
با استفاده از دستور Run در Eclipse می توانید اپلیکیشن ایجاد شده را اجرا کنید که به طور خودکار شبیه ساز اندروید را راه اندازی می کند. اگر می خواهید در مورد آن بیشتر بدانید، مستندات اندروید را بررسی کنید
عالی. اما از کجا شروع کنیم؟ چه زبانی را یاد بگیرم؟ از چه منابعی؟ و مهارت های اولیه کسب شده را در کجا به کار ببریم؟ مقاله ما به شما کمک می کند تا به این سوالات پاسخ دهید.
هر زبان و چارچوبی پیچیدگی ها و تفاوت های ظریف، مزایا و معایب خاص خود را دارد. بیایید به زبان های اصلی برای نوشتن برنامه های اندروید نگاه کنیم.
جاوا
زبان برنامه نویسی رسمی که توسط محیط توسعه اندروید استودیو پشتیبانی می شود. طبق نظرسنجی سالانه Stackoverflow، در سال 2018 جاوا در بین پنج زبان برنامه نویسی محبوب قرار گرفت.
اولین قدم برای تسلط بر جاوا، نصب اندروید استودیو است. این یک نوع نرم افزار به نام IDE - Integrated Development Environment یا محیط توسعه داخلی است. Android Studio با Android SDK ارائه می شود - مجموعه ای از ابزارها برای توسعه Android و همه چیزهایی که برای شروع مطمئن نیاز دارید.
بیشتر اسناد رسمی گوگل به جاوا اشاره دارد و یافتن کتابخانه ها و آموزش های پولی و رایگان کار دشواری نیست - تعداد زیادی از آنها وجود دارد.
دلایل اصلی استفاده از PhoneGap برای توسعه برنامه در Live Typing عبارتند از:
- کاهش زمان و هزینه توسعه یک برنامه برای چندین پلتفرم به طور همزمان (برنامه ای برای دریافت اشتراک موسسات ورزشی شهرستان).
- امکان استفاده از وب سایت موجود مشتری و قطعات آن (برنامه پرداخت برای خدمات و خرید آنلاین).
نتیجه
به طور کلی، برنامه های کاربردی برای Android را می توان تقریباً به هر زبان محبوب ایجاد کرد - چارچوب ها و ابزارهای کمکی برای همه چیز وجود دارد. با این حال، اگر می خواهید یک توسعه دهنده حرفه ای اندروید شوید، از تمام قابلیت های سیستم عامل استفاده کنید و به آخرین ویژگی های اندروید دسترسی داشته باشید، جاوا یا کاتلین همراهان وفادار شما خواهند بود. حتی اگر این زبان ها برای شما ناآشنا و پیچیده به نظر می رسند، ارزش یادگیری نوشتن برنامه های غنی، زیبا و کاربردی برای سیستم عامل اندروید را دارند.
و باید از مقاله ما که در آن جمع آوری کرده ایم با جنبه نظری توسعه اندروید آشنا شوید.
در هر کسب و کاری، سخت ترین کار شروع است. اغلب سخت است که وارد زمینه شویم، چیزی که وقتی تصمیم گرفتم اولین برنامه اندروید خود را توسعه دهم با آن مواجه شدم. این مقاله برای کسانی است که می خواهند شروع کنند، اما نمی دانند از کجا.
این مقاله کل چرخه توسعه برنامه را پوشش می دهد. با هم یک بازی Tic-Tac-Toe ساده با یک صفحه می نویسیم (در سیستم عامل اندروید به آن Activity می گویند).
عدم تجربه توسعه جاوا نباید مانعی برای تسلط بر اندروید باشد. بنابراین، نمونهها از ساختارهای خاص جاوا استفاده نخواهند کرد (یا تا حد امکان به حداقل میرسند). اگر به عنوان مثال PHP می نویسید و با اصول اساسی توسعه نرم افزار آشنا هستید، این مقاله برای شما بسیار مفید خواهد بود. به نوبه خود، از آنجایی که من در توسعه جاوا متخصص نیستم، می توان فرض کرد که کد منبع برای برچسب "بهترین شیوه ها برای توسعه جاوا" واجد شرایط نیست.
نصب برنامه ها و ابزارهای مورد نیاز
من ابزارهای لازم را لیست می کنم. 3 مورد از آنها وجود دارد:
- IDE با پشتیبانی از توسعه اندروید:
- پلاگین Eclipse + ADT;
- IntelliJ IDEA Community Edition.
- پلاگین Netbeans + nbandroid;
برنامه های کاربردی به ترتیب مشخص شده در بالا نصب می شوند. نصب تمام IDE های لیست شده فایده ای ندارد (مگر اینکه در انتخاب مناسب مشکل داشته باشید). من از IntelliJ IDEA Community Edition استفاده می کنم، یکی از پیشرفته ترین IDE های جاوا که امروزه در دسترس است.
راه اندازی یک دستگاه مجازی
با راه اندازی AVD Manager و نصب بسته های اضافی (SDK نسخه های مختلف)، می توانید شروع به ایجاد یک دستگاه مجازی با پارامترهای لازم کنید. درک رابط نباید دشوار باشد.لیست دستگاه
ایجاد یک پروژه
من همیشه مشتاق هستم تا به کار برسم و فعالیت های مقدماتی را که شامل ایجاد پروژه در IDE می شود، به حداقل برسانم، به خصوص زمانی که پروژه آموزشی است و قصد تولید ندارد.بنابراین، File->New Project:
با فشردن دکمه F6 پروژه مونتاژ، کامپایل و روی دستگاه مجازی راه اندازی می شود.
ساختار پروژه
اسکرین شات قبلی ساختار پروژه را نشان می دهد. از آنجایی که در این مقاله اهداف کاملاً عملی را دنبال می کنیم، فقط بر روی پوشه هایی تمرکز خواهیم کرد که در روند کار از آنها استفاده خواهیم کرد. این ها دایرکتوری های زیر هستند: ژنرال, پاسخو src.در پوشه ژنرالفایل هایی وجود دارند که به طور خودکار هنگام ساخت پروژه تولید می شوند. شما نمی توانید آنها را به صورت دستی تغییر دهید.
پوشه res برای ذخیره منابعی مانند تصاویر، متون (از جمله ترجمه ها)، مقادیر پیش فرض، طرح بندی ها در نظر گرفته شده است.
src- این پوشه ای است که قسمت اصلی کار در آن انجام می شود، زیرا فایل هایی با کد منبع برنامه ما در اینجا ذخیره می شوند.
خطوط اول
به محض ایجاد Activity (صفحه برنامه)، متد onCreate() فراخوانی می شود. IDE آن را با 2 خط پر کرد:
super.onCreate(savedInstanceState); setContentView(R.layout.main);
متد setContentView (معادل this.setContentView) طرح بندی xml را برای صفحه فعلی تنظیم می کند. در ادامه، طرحبندی xml را «طرحبندی» و صفحهنمایشها را «فعالیت» مینامیم. طرح بندی در برنامه به صورت زیر خواهد بود:
TableLayout برای این برنامه ایده آل است. شناسه را می توان به هر منبعی اختصاص داد. در این حالت به TableLayout id = main_l اختصاص داده می شود. با استفاده از متد findViewById() می توانید به view دسترسی داشته باشید:
طرح بندی TableLayout خصوصی. // این یک ویژگی از کلاس KrestikinolikiActivity است void public onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.mainame)؛ ))
حال باید متد buildGameField() را پیاده سازی کنیم. برای این کار باید یک فیلد به شکل ماتریس ایجاد کنید. این کار توسط کلاس Game انجام خواهد شد. ابتدا باید یک کلاس Square برای سلول ها و یک کلاس Player ایجاد کنید که اشیاء آن این سلول ها را پر کنند.
Square.java
بسته com.example; کلاس عمومی مربع ( پخش کننده خصوصی = تهی؛ پر کردن فضای خالی عمومی (بازیکن پخش کننده) (این. بازیکن = پخش کننده؛ ) بولین عمومی isFilled() (اگر (بازیکن != پوچ) (بازگشت درست؛) برگشت نادرست؛ ) عمومی پلیر getPlayer () (بازیکن برگشتی؛ ) )Player.java
بسته com.example; کلاس عمومی Player ( نام رشته خصوصی؛ پخش کننده عمومی (نام رشته) ( this.name = نام؛ ) عمومی CharSequence getName() (بازگرداندن (CharSequence) نام؛ ))تمام کلاس های برنامه ما در پوشه src قرار دارند.
Game.java
بسته com.example; کلاس عمومی بازی ( /** * فیلد */ فیلد مربع خصوصی؛ /** * سازنده * */ بازی عمومی() ( فیلد = مربع جدید؛ مربع تعداد = 0؛ // پر کردن فیلد برای (int i = 0، l = میدان.طول؛ منراه اندازی بازی در سازنده KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // بعدا پیاده سازی خواهد شد)
متد buildGameField() از کلاس KrestikinolikiActivity. به صورت پویا سطرها و ستون ها را به جدول (فیلد بازی) اضافه می کند:
دکمه های خصوصی دکمه = دکمه جدید. //(...) خلا خصوصی buildGameField() ( فیلد مربع = game.getField()؛ برای (int i = 0, lenI = field.length; i
خط 8 یک شی ایجاد می کند که رابط View.OnClickListener را پیاده سازی می کند. بیایید یک کلاس Listener تودرتو ایجاد کنیم. فقط از KrestikinolikiActivity قابل مشاهده خواهد بود.
Public class Listener View.OnClickListener را پیاده سازی می کند (int خصوصی x = 0؛ خصوصی int y = 0؛ public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick (نمایش مشاهده) ( دکمه دکمه = (دکمه) نمایش؛ ) )
باقی مانده است که منطق بازی را پیاده سازی کنیم.
بازی کلاس عمومی ( /** * بازیکنان */ بازیکنان خصوصی؛ /** * فیلد */ فیلد مربع خصوصی؛ /** * بازی شروع شده است؟ */ بولین خصوصی شروع شده است؛ /** * بازیکن فعلی */ خصوصی Player activePlayer؛ /** * تعداد سلول های پر شده را می شمارد */ int خصوصی پر شده؛ /** * کل سلول ها */ private int squareCount؛ /** * Constructor * */ public Game() ( فیلد = مربع جدید؛ مربع تعداد = 0؛ // پر کردن فیلد برای (int i = 0، l = field.length; i
تعیین برنده
K.O پیشنهاد می کند که برنده در تیک تاک کسی است که X یا O را در خطی برابر با طول میدان به صورت عمودی یا افقی یا مورب ردیف کند. اولین فکری که به ذهن خطور می کند نوشتن روش هایی برای هر مورد است. من فکر می کنم الگوی زنجیره مسئولیت در این مورد به خوبی کار خواهد کرد. بیایید رابط را تعریف کنیمبسته com.example; رابط عمومی WinnerCheckerInterface (بازکن عمومی checkWinner();)
از آنجایی که Game مسئولیت تعیین برنده را دارد، این رابط را پیاده سازی می کند. زمان ایجاد "خطوط" مجازی است، که هر کدام سمت خود را بررسی می کنند. همه آنها رابط WinnerCheckerInterface را پیاده سازی می کنند.
WinnerCheckerHorizontal.java
بسته com.example; کلاس عمومی WinnerCheckerHorizontal WinnerCheckerInterface (بازی خصوصی بازی؛ عمومی WinnerCheckerHorizontal(بازی) (این. بازی = بازی؛ ) عمومی چکWinner() (فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = تهی؛ برای (int) i = 0، len = میدان.طول؛ iWinnerCheckerVertical.java
بسته com.example; کلاس عمومی WinnerCheckerVertical WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerVertical (بازی) (این. بازی = بازی؛ ) عمومی چکWinner() ( فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = null؛ برای (int i = 0، len = میدان.طول؛ iWinnerCheckerDiagonalLeft.java
بسته com.example; کلاس عمومی WinnerCheckerDiagonalLeft WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerDiagonalLeft(بازی) (این. بازی = بازی؛ ) چک بازیکن عمومیWinner() ( فیلد مربع = game.getField()؛ بازیکن currPlayer؛ بازیکن lastPlayer = تهی؛ int successCo 1؛ برای (int i = 0، len = field.length؛ iWinnerCheckerDiagonalRight.java
بسته com.example; کلاس عمومی WinnerCheckerDiagonalRight WinnerCheckerInterface را پیاده سازی می کند (بازی خصوصی بازی؛ عمومی WinnerCheckerDiagonalRight(بازی) (این. بازی = بازی؛ ) عمومی چکWinner() (فیلد مربع = game.getField(); CurrPlayer بازیکن؛ بازیکن lastPlayer = تهی؛ int موفقیتCo 1؛ برای (int i = 0، len = field.length؛ iبیایید آنها را در سازنده Game مقداردهی کنیم:
//(....) /** * «قضات» =). بعد از هر حرکت آنها * را بررسی می کنند تا ببینند آیا برنده ای وجود دارد */ WinnerCheckerInterface winnerCheckers خصوصی. //(....) عمومی بازی() ( //(....) winnerCheckers = WinnerCheckerInterface جدید؛ winnerCheckers = new WinnerCheckerHorizontal(this)؛ winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); winnerCheckers = جدید WinnerCheckerDiagonalRight(this); //(...))
پیاده سازی checkWinner():
عمومی پخش کننده checkWinner() (برای (WinnerCheckerInterface winChecker: winnerCheckers) (بازیکن برنده = winChecker.checkWinner(؛ if (برنده != تهی) (برنده برگشت؛) ) برنده صفر؛ )
ما بعد از هر حرکت برنده را بررسی می کنیم. بیایید کدی را به متد onClick() کلاس Listener اضافه کنیم
public void onClick(نمایش) (دکمه دکمه = (دکمه) نمایش؛ بازی g = بازی؛ بازیکن بازیکن = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) برنده بازیکن = g.checkWinner(); if (برنده != null) ( gameOver(برنده)؛ ) if (g.isFieldFilled()) ( // اگر فیلد پر شده باشد gameOver(); ) )
متد gameOver() در 2 نوع پیاده سازی شده است:
خصوصی void gameOver(بازیکن) ( متن CharSequence = "بازیکن \"" + player.getName() + "\" برد!"؛ Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset ()؛ refresh(); ) خصوصی void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
برای جاوا، gameOver (پخش کننده) و gameOver() روش های متفاوتی هستند. با استفاده از Builder Toast.makeText، می توانید به سرعت یک اعلان ایجاد و نمایش دهید. refresh () وضعیت فیلد را به روز می کند:
Private void refresh() (فیلد مربع = game.getField(); برای (int i = 0، len = field.length; i
آماده! امیدوارم این مقاله به شما کمک کرده باشد تا در دنیای توسعه اندروید راحت باشید. از توجه شما متشکرم
ویدیوی برنامه تمام شده
آموزش ساخت اپلیکیشن موبایل در اندروید استودیو
Android Studio یک محیط توسعه یکپارچه (IDE) مبتنی بر IntelliJ IDEA است که گوگل آن را IDE رسمی برنامه های اندروید می نامد.
این راهنما توضیح می دهد توسعه اپلیکیشن اندروید:
- با استفاده از File Explorer بین فایل ها حرکت کنید
- در حال نصب فایل AndroidManifest.xml
- وارد کردن فایل ها به پروژه
- ویرایشگر طرحبندی پیشرفته با ویژگی پیشنمایش پویا
- استفاده از Logcat و مانیتور اندروید برای اشکال زدایی برنامه ها
شروع به کار در اندروید استودیو
Android Studio را در یک پنجره راه اندازی کنید Android Studio Setup Wizardانتخاب کنید یک پروژه اندروید استودیو جدید را شروع کنید(شروع یک پروژه جدید).
در پنجره ایجاد پروژه جدیدانتخاب کنید نام نرم افزار(نام برنامه) به عنوان توپ Fortune، دامنه شرکت را وارد کنید. در زمینه محل پروژهمکانی که برنامه در آن ذخیره می شود را انتخاب کنید. کلیک بعد.
یک پنجره روبروی شماست دستگاه های اندروید را هدف قرار دهید. انتخاب کنید گوشی و تبلت. در زمینه حداقل SDKلطفا نشان بدهید API 15. کلیک بعد.
در پنجره یک فعالیت به موبایل اضافه کنیدانتخاب کنید فعالیت پایه. تمام گزینه ها را ارزیابی کنید، این پنجره یک نمای کلی از طرح بندی های موجود را ارائه می دهد.
کلیک بعد.
در پنجره سفارشی کردن فعالیت، که اسکرین شات آن در زیر قرار داده شده است، می توانید تغییر دهید نام فعالیت(نام فعالیت) نام طرح(نام طرح)، عنوان(نام مشترک) و نام منبع منو(نام منوی منبع). مقادیر پیش فرض را رها کرده و کلیک کنید پایان.
بعد از چند ثانیه پنجره زیر ظاهر می شود:
همان پنجره در دستگاه یا شبیه ساز شما ظاهر می شود. شبیه ساز به عنوان یک دستگاه عمل می کند و بارگیری آن مدتی طول می کشد.
این قبلاً یک برنامه کاربردی است. او کمبودهای زیادی دارد، اما اکنون می تواند به مرحله بعدی برود.
ساختار پروژه و فایل
پنجره فایل های پروژه را نشان می دهد.
منوی کشویی (عکس زیر) چندین فیلتر برای فایل ها دارد. اصلی ترین آنها Project و Android هستند.
فیلتر پروژه همه ماژول های برنامه را نشان می دهد - هر پروژه حداقل یک ماژول دارد. انواع دیگر ماژولها شامل ماژولهای کتابخانههای شخص ثالث یا ماژولهایی از سایر برنامههای Android (مانند برنامههای Android Wear، Android TV) است. هر ماژول مجموعه ای از ویژگی های خاص خود را دارد، از جمله یک فایل gradle، منابع و فایل های منبع (فایل های جاوا).
توجه داشته باشید. اگر پروژه باز نیست، همانطور که در تصویر نشان داده شده است، روی تب Project در سمت چپ پنل کلیک کنید. به طور پیش فرض فیلتر اندروید نصب شده است که فایل ها را بر اساس نوع خاصی گروه بندی می کند. در سطح بالا پوشه های زیر را مشاهده خواهید کرد:
- آشکار می کند
- اسکریپت های Gradle
بخشهای زیر هر یک از این پوشهها را با جزئیات توضیح میدهند و با مانیفست شروع میشوند.
نمای کلی AndroidManifest.xml
هر برنامه اندرویدی یک فایل AndroidManifest.xml دارد که در پوشه manifests قرار دارد. این فایل XML به سیستم شما در مورد نیازهای برنامه می گوید. وجود این فایل اجباری است، زیرا آن چیزی است که به سیستم اندروید اجازه ایجاد یک برنامه را می دهد.
پوشه manifests و AndroidManifest.xml را باز کنید. دوبار کلیک کنید فایل باز می شود.
تگ های مانیفست و برنامه برای مانیفست مورد نیاز هستند و فقط یک بار ظاهر می شوند.
هر تگ همچنین مجموعه ای از ویژگی ها را به همراه نام عنصر تعریف می کند. به عنوان مثال، برخی از ویژگی ها در برنامه می تواند مانند این باشد:
android:icon، android:label و android:theme
در میان چیزهای دیگر، موارد زیر ممکن است به صورت آشکار ظاهر شوند:
- use-permission: مجوز خاصی را درخواست می کند که به برنامه داده می شود تا به درستی کار کند. به عنوان مثال، یک برنامه باید از کاربر اجازه دسترسی به شبکه را بخواهد - در صورتی که مجوز android.permission.INTERNET را اضافه کنید.
- فعالیت: فعالیتی را گزارش می کند که تا حدی مسئول رابط کاربری بصری و منطق است. هر فعالیتی که در برنامه ارائه می شود باید به مانیفست اضافه شود - سیستم متوجه فعالیت بدون علامت نمی شود و در برنامه نمایش داده نمی شود.
- سرویس: سرویسی را اضافه می کند که قصد دارید از آن برای اجرای عملیات طولانی مدت یا ارتباطات API پیشرفته با سایر برنامه ها استفاده کنید. یک مثال در این مورد یک تماس شبکه است که از طریق آن یک برنامه داده ها را دریافت می کند. برخلاف فعالیت ها، سرویس ها رابط کاربری ندارند.
- گیرنده: با یک گیرنده پیام پخش، یک برنامه سیگنالهایی را درباره پیامهای سیستم یا پیامهایی از برنامههای دیگر دریافت میکند، حتی زمانی که سایر اجزای برنامه در حال اجرا نیستند. نمونه ای از چنین وضعیتی باتری با سطح شارژ پایین و سیستم عامل در مورد آن است.
فهرست کاملی از برچسبها را میتوانید در فایل مانیفست در وبسایت Android Developer پیدا کنید.
تنظیمات فایل مانیفست
ویژگی زیر را به فعالیت اضافه کنید:
android:screenOrientation=”عمودی”. برای محدود کردن صفحه نمایش فقط به حالت عمودی. اگر این کار انجام نشود، صفحه نمایش، بسته به موقعیت مکانی دستگاه، در حالت افقی یا عمودی خواهد بود. پس از افزودن ویژگی، فایل مانیفست شبیه تصویر صفحه خواهد شد.
برنامه را ایجاد و اجرا کنید. اگر در حال آزمایش روی دستگاه خود هستید، آن را برگردانید، مطمئن شوید اگر این قابلیت را در فایل AndroidManifest محدود کرده اید، صفحه به حالت افقی حرکت نمی کند.
نمای کلی Gradle
بیایید به سراغ Gradle برویم. Gradle یک پروژه اندروید را به یک APK قابل نصب تبدیل می کند که می تواند بر روی دستگاه ها نصب شود. فایل build.gradle در اسکریپت های Gradle در دو سطح ماژول و پروژه وجود دارد.
فایل build.gradle را باز کنید (Module:app). نصب پیش فرض gradle را خواهید دید:
اعمال افزونه: "com.android.application" android (compileSdkVersion 25buildToolsVersion "25.0.2" defaultConfig (applicationId "com.raywenderlich.fortuneball" minSdkVersion 15targetSdkVersion 25versionCode.support. .AndroidJUnit Runner") buildTypes (release (minifyEnabled falseproguardFiles getDefaultProguardFile("proguard-android.txt")، "proguard-rules.pro"))) وابستگی ها (compile fileTree(dir: "libs")، شامل: ["*.jar"])androidTestCompile( " com.android.support.test.espresso:espresso-core:2.2.2"، (بدون گروه: "com.android.support"، ماژول: "support-annotations")) "com.android.support:appcompat" را کامپایل کنید - v7:25.1.0"کامپایل "com.android.support:design:25.1.0"testCompile "junit:junit:4.12")
بیایید به اجزای اصلی نگاه کنیم:
- افزونه application: 'com.android.application' پلاگین Android را در سطح والد اعمال می کند و وظایف سطح بالای مورد نیاز برای ساخت برنامه را در دسترس قرار می دهد.
- در کنار بخش android(…) گزینه های تنظیمات مانند targetSdkVersion قرار دارند. SDK هدف برای برنامه شما باید در آخرین سطح API باشد. مؤلفه مهم دیگر minSDKVersion است (حداقل نسخه SDK که باید روی دستگاه نصب شود تا برنامه اجرا شود را تعریف می کند). به عنوان مثال، اگر نسخه SDK 14 باشد، برنامه نمی تواند روی آن دستگاه اجرا شود، زیرا در این مورد خاص حداقل نسخه پشتیبانی شده 15 است.
- آخرین مؤلفه وابستگی ها (…) است. لازم است به کامپایل «com.android.support:appcompat-v7:VERSION» و کامپایل «com.android.support:design:VERSION» توجه کنید. آنها پشتیبانی و سازگاری ویژگی های API های جدید و قدیمی را ارائه می دهند.
علاوه بر کتابخانههای سازگاری اندروید، میتوانید کتابخانههای شخص ثالث را به مؤلفه وابستگیها (...) اضافه کنید. برای مثال، کتابخانه انیمیشن حاوی افکتهای رابط کاربری است. وابستگی ها را پیدا کنید، سپس دو خط زیر را اضافه کنید:
وابستگی ها ( ... کامپایل "com.daimajia.easing:library:2.0@aar" کامپایل "com.daimajia.androidanimations:library:2.2@aar")
در اینجا می توانید وابستگی های شخص ثالث را اضافه کنید. کتابخانه ها به طور خودکار دانلود و در Android Studio ادغام می شوند. روی Sync Now کلیک کنید تا این وابستگی ها در برنامه شما یکپارچه شود.
همگام سازی چند ثانیه طول می کشد. به روز رسانی Gradle در تب پیام ها در پانل پایین ظاهر می شود.
اینها تمام تنظیماتی است که در حال حاضر در Gradle به آن نیاز دارید. چنین دستکاری هایی انیمیشن را به برنامه اضافه می کند.
وارد کردن فایل ها
هنگام توسعه یک برنامه اندروید، ادغام با منابع دیگر مهم است: تصاویر، فونت های سفارشی، صداها، فیلم ها و غیره. این منابع به اندروید استودیو وارد شده و در پوشه های مناسب قرار می گیرند که به سیستم عامل اجازه می دهد تا منابع صحیح را انتخاب کند. کاربرد. برنامه Fortune Ball ما باید تصاویر را در پوشه های قابل ترسیم وارد کند. این پوشهها میتوانند حاوی تصاویر یا فایلهای ترسیمی XML خاص باشند (یعنی میتوانید اشکال را با استفاده از کد XML بکشید و از آنها در طرحبندیهای خود استفاده کنید).
در Android Studio، از Android به Project بروید
پوشه res (app > src > main) را باز کنید. روی پوشه res راست کلیک کنید، New > Android resource directory را انتخاب کنید.
پنجره ای به نام New Resource Directory ظاهر می شود.
از لیست کشویی Resource type، گزینه drawable را انتخاب کنید. در لیست واجد شرایط، تراکم را انتخاب کنید، سپس روی دکمه ای که در تصویر برجسته شده است کلیک کنید.
در پنجره بعدی، XX-High Density را از لیست Density انتخاب کنید. روی OK کلیک کنید.
همه چیز را برای ایجاد پوشههای drawable-xhdpi، drawable-hdpi و drawable-mdpi تکرار کنید. از لیست تراکم به ترتیب X-High، high و medium density را انتخاب کنید.
هر پوشه ای که دارای شناسه تراکم است (یعنی xxhdpi، xhdpi، hdpi) حاوی تصاویری است که با چگالی یا وضوح خاصی مرتبط هستند. به عنوان مثال، پوشه drawable-xxhdpi حاوی یک تصویر با چگالی بالا است، به این معنی که یک دستگاه اندرویدی با صفحه نمایش با وضوح بالا، تصویر را از این پوشه ترسیم می کند. بدون در نظر گرفتن کیفیت صفحه نمایش، تصویر در همه دستگاه های اندرویدی خوب به نظر می رسد. اطلاعات بیشتر در مورد تراکم صفحه نمایش را می توانید در مستندات Android پیدا کنید.
پس از ایجاد تمام پوشه های "طراحی شده"، می توانید به محتوای زیپ نشده در پوشه برگردید و تصویر را از هر پوشه (cmd + C) کپی کنید و (cmd + V) را در پوشه Android Studio مربوطه قرار دهید.
پس از قرار دادن فایل ها، پنجره Copy را مشاهده خواهید کرد. OK را انتخاب کنید.
نمای XML و پیش نمایش های طرح بندی پویا
ایجاد طرحبندی که کاربران بتوانند با آن تعامل داشته باشند، بخش مهمی از فرآیند است. در Android Studio، این کار را می توان در ویرایشگر طرح انجام داد. content_main.xml را از res/layout باز کنید. در تب Design می توانید عناصر رابط (دکمه ها، فیلدهای متنی) را جابجا کنید.
در سمت راست Design یک تب Text وجود دارد که به شما امکان می دهد XML را مستقیماً در طرح بندی ویرایش کنید.
قبل از ایجاد ظاهر، باید مقادیری را تعریف کنید. strings.xml را در تب res/values باز کنید و موارد زیر را اضافه کنید:
strings.xml شامل تمام رشته هایی است که در برنامه ظاهر می شوند. جداسازی این خطوط به فایل های جداگانه بین المللی سازی را آسان تر می کند زیرا شما فقط به یک فایل رشته ای برای هر زبانی نیاز دارید که در برنامه مورد نیاز است. حتی اگر قصد ندارید برنامه خود را به زبان های دیگر ترجمه کنید، استفاده از فایل رشته ای همیشه توصیه می شود.
dimens.xml را در res/values باز کنید و موارد زیر را اضافه کنید:
dimens.xml حاوی مقادیر ابعادی، فواصل محدود برای طرحبندی، اندازه متن و غیره است. توصیه میشود این دادهها را در یک فایل ذخیره کنید تا در آینده بتوان از آن برای ایجاد طرحبندی استفاده کرد.
به content_main.xml برگردید و کل محتوای فایل را با کد زیر جایگزین کنید:
این کد نسبتاً بزرگ یک طرح برای برنامه ای به نام FortuneBall ایجاد می کند. در سطح بالا یک RelativeLayout اضافه کرده اید (طرح نسبی موقعیت مولفه های فرزند را نسبت به مولفه والد مشخص می کند). RelativeLayout را می توان به تناسب اندازه مؤلفه والد گسترش داد.
نشانه گذاری نسبی دو قطعه متن، یک تصویر و یک دکمه را اضافه می کند. همه این جزئیات به ترتیبی که اضافه شده اند قابل مشاهده خواهند بود. محتویات آنها را می توان در strings.xml (متن) و drawable (تصاویر) خواند.
در حین به روز رسانی content_main.xml، توجه داشته باشید که پنجره Preview UI را به روز می کند:
توجه: اگر پنجره پیش نمایش قابل مشاهده نیست، در تب Text، روی دکمه Preview در پنل ویرایشگر نشانه گذاری در سمت راست کلیک کنید.
ایجاد و راه اندازی کنید.
و اکنون طرح برنامه را ایجاد کرده اید. اما در این مرحله فقط یک تصویر زیباست - کلیک کردن روی دکمه به چیزی منجر نمی شود.
ترکیب Activity و View
شما می توانید از فایل های جاوا واقع در app/src/main/java برای ایجاد ارتباط منطقی در برنامه استفاده کنید.
MainActivity.java را باز کنید و این داده ها را به داده های موجود اضافه کنید:
وارد کردن java.util.Random;وارد کردن android.view.View;وارد کردن android.widget.Button;وارد کردن android.widget.ImageView;وارد کردن android.widget.TextView. وارد کردن com.daimajia.androidanimations.library.Techniques;وارد کردن com.daimajia.androidanimations.library.YoYo;
پنج واردات اول به کلاس های مربوطه در کد شما اشاره می کنند: تصادفی، مشاهده، دکمه، ImageView و TextView. دو واردات زیر نشان می دهد که شما از دو کلاس از کتابخانه ها استفاده خواهید کرد. build.gradle برای انیمیشن ها. در MainActivity.java، در کلاس MainActivity، اضافه کنید:
String fortuneList = ("روی آن حساب نکن"، "بعداً دوباره بپرس"، "شما ممکن است به آن تکیه کنید"، "بدون شک"، "چشم انداز چندان خوب نیست"، "قطعاً اینطور است"، "نشانه ها" به بله، "بله قطعا"، "بله"، "منابع من می گویند خیر")؛ TextView mFortuneText;Button mGenerateFortuneButton;ImageView mFortuneBallImage;
در این کد کوتاه شما 4 متغیر برای فعالیت تنظیم کرده اید. اولی خطوطی هستند که حالت های ممکن را تعریف می کنند، سه مورد دیگر عناصر UI هستند که در طرح بندی/نشانه گذاری ایجاد کرده اید.
حال محتویات متد onCreate() را با موارد زیر جایگزین کنید:
// 1:super.onCreate(savedInstanceState);// 2:setContentView(R.layout.activity_main);Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);setSupportActionBar(Toolbar);// 3:mFortuneText (TextView) findViewById(R.id.fortuneText);mFortuneBallImage = (ImageView) findViewById(R.id.fortunateImage);mGenerateFortuneButton = ( دکمه) findViewById(R.id.fortuneButton); // 4:mGenerateFortuneButton.setOnClickListener(جدید چشم انداز.OnClickListener() (@Overridepublic void onClick( چشم انداز view) (// 5:int index = جدید تصادفی().nextInt(fortuneList.length);mFortuneText.setText(fortuneList);// 6:YoYo.with(Techniques.Swing).duration(500).playOn(mFortuneBallImage);)));
- بررسی کنید که فعالیت آماده است (اجرای سوپرکلاس).
- مشخص کنید که طرح بندی این فعالیت با طرحی که قبلا ایجاد کرده اید نشان داده شود، نوار ابزار را بررسی کنید.
- با استفاده از روش findViewById، مقادیر سه متغیری را که قبلا ایجاد کردهاید در مؤلفههای views layout پر کنید. مقدار id مانند طرح XML است.
- یک OnClickListener روی دکمه اضافه کنید. این یک کلاس ساده است که عملکردی را که با کلیک یک دکمه فراخوانی میکند (بستهها) را در بر میگیرد.
- یک گزینه سفارشی را از فهرست fortune برای این برنامه انتخاب کنید و متن ثروت را برای نمایش آن به روز کنید.
- از یک کتابخانه شخص ثالث برای اضافه کردن وابستگی به فایل gradle و در نتیجه افزودن انیمیشن به برنامه استفاده کنید.
تقریباً آماده است. اما باید دکمه شناور را بردارید. به res/layout بروید و activity_main.xml را باز کنید.
این فایل طرحبندی حاوی پیوندی به content_main.xml است که قبلاً ویرایش کردهاید. به طور پیش فرض محتوا را تعریف می کند (نوار ابزار و دکمه عمل شناور). با این حال، در این برنامه خاص (فورچون بال)، به دکمه شناور نیازی نیست. بنابراین، بلوک کد زیر را از فایل xml حذف کنید:
دیگر دکمه شناور در گوشه پایین سمت راست وجود ندارد.
یک سوال بپرسید (بخت من چیست؟) - دکمه را فشار دهید. برنامه را بررسی کنید.
مانیتور اندروید
اندروید استودیو شامل طیف گسترده ای از ابزارها است. تب Android Monitor را در پایین پنجره Android Studio باز کنید.
در اینجا گزینه های زیادی برای توسعه دهنده پیدا خواهید کرد.
- دوربین و دکمه پخش در سمت چپ به شما امکان می دهد اسکرین شات بگیرید و فیلم ضبط کنید.
- ذره بین تعدادی گزینه اضافی مانند تجزیه و تحلیل حافظه برنامه را باز می کند.
- Layout Inspector یک رابط بصری ارائه می دهد که مشخص می کند چرا رابط برنامه به شکل خاصی به نظر می رسد.
LogCat نمای کلی دقیقی از پیامهای سیستم را با توانایی بررسی دادههای برنامه خاص، یا حتی استفاده از نوار جستجو برای فیلتر کردن پیامها در صورتی که حاوی کاراکترهای خاصی نیستند، ارائه میکند.
اطمینان حاصل کنید که همانطور که در تصویر بالا نشان داده شده است، نمایش فقط برنامه انتخاب شده را در گوشه بالا سمت راست انتخاب کرده باشید. اکنون فقط پیام های برنامه شما قابل مشاهده خواهد بود.
در MainActivity.java موارد زیر را به لیست واردات اضافه کنید:
وارد کردن android.util.Log.
در انتهای onCreate() در MainActivity.java خط زیر را اضافه کنید:
Log.v("FORTUNE APP TAG"،"onCreateCalled");
Log.v دو پارامتر - برچسب و پیام را فراخوانی می کند. در این حالت، برچسب به عنوان "FORTUNE APP TAG" و پیام به عنوان "onCreateCalled" تعریف می شود.
برنامه را اجرا کنید تا پیام گزارش را در پانل Logcat ببینید.
محتویات LogCat را فیلتر کنید، onCreateCalled را در نوار جستجوی بالای کنسول وارد کنید:
سپس متن جستجو را حذف کنید تا دوباره همه پیامهای گزارش را ببینید.
یکی دیگر از ویژگی های مفید، logcat است که امکان مشاهده پیام های خطا است. یک اشکال را به برنامه کاملاً کاربردی خود اضافه کنید تا ببینید کارها چگونه کار می کنند.
به MainActivity.java بروید و خط زیر را در onCreate تغییر دهید:
//mFortuneText = (TextView) findViewById(R.id.fortuneText);
برنامه را راه اندازی کنید. روی دکمه "بخت من چیست؟" کلیک کنید کار نمی کند!
اگر نمی دانستید یک باگ وجود دارد، چگونه خطا را برطرف می کنید؟ Logcat در این مورد کمک خواهد کرد.
به پانل Logcat بروید - چیزی شبیه به این است:
در اینجا متن قرمز زیادی وجود دارد. در این صورت مشکل خط 50 فایل MainActivity.java است. LogCat این پیوند را به یک لینک آبی تبدیل کرد. اگر آن را فشار دهید، می توانید متوجه شوید که مشکل چیست.
با تغییر mFortuneText = (TextView) findViewById(R.id.fortuneText)، یک متغیر ایجاد کردید اما مقدار آن را مشخص نکردید - از این رو اشاره گر تهی است. برگردید و کد را تغییر دهید، برنامه را اجرا کنید. این بار همه چیز به آرامی کار می کند. Logcat ابزاری مفید برای یافتن خطاها است.
این مقاله را به اشتراک بگذارید:
مقالات مرتبط
![](https://i1.wp.com/wnfx.ru/wp-content/uploads/2015/10/s_1600_4-300x225.jpg)