# Native Code > برنامه نویسی موبایل > Android Studio >  آموزش برنامه نویسی Android از پایه

## powerboy2988

سلام...

همونطوری که قبلا بحث شد.. قرار شد آموزش برنامه نویسی Android رو تو سایت قرار بدم.. 

برای این کار من یک لیست اولیه برای شروع تهیه کردم و به مرور زمان تکمیلش می کنم.. 

از دوستان خواهشمندم که سوالی اگر دارند به صورت پیغام مطرح کنند که اگر تعداد سوالات زیاد شد، یک تاپیک جداگانه ایجاد بشه تا در این تاپیک مشکلی پیش نیاد... 

من این پیش فرض رو هم در نظر گرفتم که دوستان برنامه نویسی Java رو بلد هستند ...

سعی می کنم که هر شب این تاپیک رو بروز کنم 

و خیلی خوشحال میشم که منو تو این راه کمک کنید
ممنون....


اما محتویات آموزش :

1- Android چیست ؟
2- Android Versions
3- شروع کار با Android
4- ابزار های مورد نیاز
5- Android Components
6- معماری یک برنامه Android
7- ایجاد اولین پروژه بر روی Virtual Machine
8- طرای UI
9 - ایجاد Menu
10 - ایجاد About Box
11 - کار با فایل ها
12- در مورد Sqlite
13 - کار با Sqlite

----------


## powerboy2988

قسمت اول : Android چیست ؟ 

Android یکی از سیستم عامل ها برای دستگاه های قابل حمل نظیر Smart Phone ها و Tablet ها و NoteBook هاست . که از نسخه اصلاح شده و لینوکس کرنل و نرم افزار GNU استفاده می کند .

این سیستم عامل برای اولین بار در شرکت Android ایجاد شد اما بعد از چندی توسط Google خریداری شد و سپس Open Handset Alliance مالکیت آن را از آن خود کرد.

این سیستم عامل که Open Source می باشد به کاربران (برنامه نویسان) با زبان برنامه نویسی Java کدهای مدیریت شده ای برای کنترل ابزارهای شرکت Google به وجود آورند.

اولین Smart phone که دارای این سیستم عامل به بازار اومد HTC Dream نام داشت که در سال 2008 میلادی عرضه شد.

گوگل در جولای 2005 اختیار Android را به دست گرفت و شرکت کوچکی در شهر پالوآلتو در کالیفرنیا احداث کرد. در آن زمان عده کمی در مورد Android و کارایی ها و امکانات آن می دانستند. اما کم کم برنامه نویسی آن شروع شد. تیمی از گوگل به رهبری اندی روبین (Andy Rubin) پلت فرمی ساختند که بر پایه Linux بود و با هدف ایجاد سیستمی منعطف و قابل ارتقاء شروع به بازاریابی برای شرکت های موبایل سازی و اپراتورها کردند.

هم زمان با پرده برداری از Android در پنجم نوامبر 2007  , Open Handset Alliance هم افتتاح شد که کنسرسیومی متشکل از 71 شرکت سخت افزار ، نرم افزار و ارتباطات است. این شرکت ها هدف ایجاد استاندارد های آزاد و باز برای گوشی های موبایل را دنبال می کنند.

Android رسما از 21 اکتبر 2008 فعالیت خود را به عنوان سیستم عامل های منبع باز و قابل ارتقاء به نسخه های بالاتر آغاز کرد. این سیستم عامل از زمان عرضه رسمی آن تا به حال آپدیت های زیادی داشته است. با این آپدیت ها بسیاری از مشکلات نرم افزاری اش حل و امکانات جدیدی به آن افزوده می شود.

----------


## powerboy2988

ویژگی های Android : 


Storage :  استفاده از SQLite ، یک دیتابیس سبک رابطه ای برای ذخیره داده ها
Connectivity :  پشتیبانی از  GSM/EDGE ، IDEN ، CDMA ، EV-DO  ، UMTS ، Bluetooth  و WiFi ، LTE ، WiMAX
Messaging : پشتیبانی از SMS و MMS
Web browser : پایه ریزی شده بر اساس مرورگر کد باز WebKit ، همچنین موتور javasript مربوط به Chrome’s V8
Media support : پشتیبانی از H.263, H.264 (in 3GP or MP4
container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or
3GP container), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP
Hardware support : پشتیبانی از Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor,
و  GPS
Multi-touch : پشتیبانی از Multi-touch
Multi-tasking : پشتیبانی از برنامه های Multi-task
Tethering : پشتیبانی از اینترنت های به اشتراک گذاری شده wired/wireless hotspot

----------


## powerboy2988

معماری Android :


به طور کلی سیستم عامل Android  به 5 قسمت زیر تقیسم میشود : 
1-Linux Kernel : سیستم عامل Android به صورت Linux Based می باشد. این لایه از همه درایورهای سطح پایین برای انواع بخش های سخت افزاریی یک دستگاه Android، تشکیل شده است.
2-Libraries : تشکیل شده از کدهایی که ویژگی های اصلی سیستم عامل Android را تامین می کند. مثلا، کتابخانه SQLite، که برای استفاده توسط یک برنامه که می خواهد از ذخیره سازی سازی دیتا استفاده کند، شرایط آن را فراهم می کند.
3-	Android runtime :  شبیه لایه Libraries می باشد. این لایه یکسری Libraries را در اختیار برنامه نویسان قرار می دهد تا با زبان برنامه نویسی Java ، از آنها استفاده کنند. همچنین این لایه شامل ماشین مجازی Dalvik می باشد که برنامه های Android در آن اجرا می شود. Dalvik یک ماشین مجازی مخصوص است که برای دستگاه هایی با باطری، حافظه و CPU محدود، طراحی شده است.
4-Application framework : این لایه توانایی های مختلف سیستم عامل Android را در اختیار برنامه نویس قرار داده که بتوانند در برنامه های خود از آن استفاده کنند.
5-Applications : بالاترین لایه می باشد که می توانید برنامه هایی که با آن کار می کنید را در آن ببینید . مثل Phone , Contacts , Browser و ... و برنامه هایی که از Android Market دانلود می کنید و همچنین برنامه هایی که می نویسید، همگی در این لایه قرار می گیرند

----------


## powerboy2988

قسمت دوم : Android Versions

نسخه 1.5 یا Cupcake

این نسخه که 30 آوریل 2009 معرفی شده است امکانات و آپدیت های جدیدی در محیط کاربریش دارد …

بر پایه لینوکس کرنل نسخه 2،6،27

مانند :

- قابلیت ضبط و تماشای فایل های ویدئویی

- امکان Upload مستقیم فایل های ویدئویی به Youtube  و تصاویر به Picasa از گوشی

- صفحه کلید راحت با قابلیت تشخیص کلمه

- پشتیبانی از بلوتوث A2DP و AVRCP

- قابلیت ارتباط اتوماتیک با هدست بلوتوث تا فاصله مشخص

- ویجت ها و فلدرهای جدید که می توانند صفحه نمایش اصلی را سر و سامان دهند

- نقل و انتقالات انیمیشنی یا متحرک در صفحه نمایش

گوشی های هوشمند زیر همگی دارای این نسخه از Android می باشند :

Acer beTouch E110

 LG GW620

Motorola i7

Archos 7 Tablet

----------


## powerboy2988

نسخه 1.6 یا Donut

پر پایه لینوکس کرنل نسخه 2،6،29

این نسخه 15 سپتامبر 2009 معرفی شد و آپدیت های زیر را به همراه داشت :

- بهتر شدن تجربه کار با فروشگاه مجازی Android

- محیط یکپارچه برای گالری، دوربین و ضبط ویدئو

- قابلیت حذف چند عکس با هم از گالری

- آپدیت جست و جوی صوتی با پاسخ دهی سریع و سازگاری عمیق تر با برنامه های بومی مانند قابلیت تماس با مخاطبان

- پشتیبانی از فناوری های EVDO.802.1x.***s، CDMA و موتور تبدیل متن به صوت

- آپدیت جست و جو میان بوک مارک ها، تاریخچه، مخاطبان و وب از روی صفحه نمایش

- پشتیبانی از وضوح WVGA در صفحه نمایش

- افزایش سرعت در عملکرد برنامه های موتور جست و جو و دوربین

گوشی های هوشمند زیر ، دارای این نسخه از Android می باشند :

Motorola A1260

Gigabyte GSmart

HTC Tattoo

----------


## powerboy2988

نسخه 2 یا 2.1 یا Eclair

بر پایه لینوکس کرنل 2,6,29

این نسخه 26 اکتبر 2009 معرفی شد. برخی از تغییرات آن عبارتند از :

- بهبود سرعت سخت افزارها

- پشتیبانی از صفحه نمایش های بزرگتر و وضوح بیشتر

- محیط کاربری جدید و تغییر یافته

- محیط کاربری جدید مرورگر و پشتیبانی از HTML5

- لیست مخاطبان جدید

- نسبت بهتر سیاه و سفید در پس زمینه

- ارتقای نقشه گوگل به نسخه 3,1,2

- پشتیبانی از Microsoft Exchange

- فلاش برای دوربین

- زوم دیجیتال

- عملکرد چند لمسی

- صفحه کلید مجازی و راحت تر

- برخورداری از نسخه 2/1 بلوتوث

- تصاویر پس زمینه زنده



گوشی های زیر دارای این نسخه از Android می باشند :

Samsung I9000 Galaxy S

HTC Legend

----------


## powerboy2988

نسخه 2.2 یا Froyo

بر پایه لینوکس کرنل نسخه 2،6،32

این نسخه 20 مه 2010 معرفی شد و تغییرات آن شامل موارد زیر می باشد :

- بیشتر شدن سرعت عمومی سیستم عامل Android و ارتقای میزان حافظه و کارایی

- سازگاری با مرورگر Chrome

- پشتیبانی بیشتر از Microsoft Chrome

-  اجرای بهتر برنامه ها با میان برها و برنامه های مرورگر

- کارایی بهتر USB و WiFi

- به روز شدن برنامه فروشگاه مجازی و امکان بروزرسانی خودکار

- تغییر مسیر سریع بین چند صفحه کلید با زبان های مختلف و دیکشنری آنها

- شماره گیری صوتی و به اشتراک گذاشتن مخاطبان از طریق بلوتوث

- رمزهای عددی و حرفی

- آپلود فایل در Browser

- نصب برنامه در حافظه قابل ارتقاء

- نسخه 10/1 برنامه Adobe Flash

گوشی های زیر ، از این نسخه از Android پشتیبانی می کنند :

Samsung Galaxy S WiFi 5.0

HTC Incredible S

LG Optimus One P500

Samsung P1000 Galaxy Tab

Samsung Galaxy Ace S5830

----------


## powerboy2988

نسخه 2.3 یا GINGERBREAD

بر پایه لینوکس کرنل نسخه 2,6,35
این نسخه در ماه دسامبر 2010 معرفی شد و تغییرات آن شامل موارد زیر می باشد :

Media Framework
•	New media framework fully replaces OpenCore, maintaining all previous codec/container support for encoding and decoding.
•	Integrated support for the VP8 open video compression format and the WebM open container format
•	Adds AAC encoding and AMR wideband encoding
Networking
•	SIP stack, configurable by device manufacturer
•	Support for Near Field Communications (NFC), configurable by device manufacturer
•	Updated BlueZ stack
Dalvik runtime
•	Dalvik VM:
	Concurrent garbage collector (target sub-3ms pauses)
	Adds further JIT (code-generation) optimizations
	Improved code verification
	StrictMode debugging, for identifying performance and memory issues
•	Core libraries:
	Expanded I18N support (full worldwide encodings, more locales)
	Faster Formatter and number formatting. For example, float formatting is 2.5x faster.
	HTTP responses are gzipped by default. XML and JSON API response sizes may be reduced by 60% or more.
	New collections and utilities APIs
	Improved network APIs
	Improved file read and write controls
	Updated JDBC
•	Updates from upstream projects:
	OpenSSL 1.0.0a
	BouncyCastle 1.45
	ICU 4.4
	zlib 1.2.5


گوشی های زیر ، از این نسخه از Android پشتیبانی می کنند :

Samsung Galaxy Y S5360

Samsung I9100 Galaxy S II

Sony Ericsson Xperia ray

Sony Xperia P

HTC Sensation

----------


## powerboy2988

نسخه 3 یا HoneyComb

بر پایه لینوکس کرنل نسخه 2,6,36

این نسخه در ماه جولای 2011 معرفی شد و تغییرات آن شامل موارد زیر می باشد :

نکته مهم : این نسخه فقط برای Tablet ارائه شده است 


Storage
ext4 file system support to enable onboard eMMC storage.
FUSE file system to support MTP devices.
USB host mode support to support keyboards and USB hubs.
Support for MTP/PTP

Dalvik VM
New code to support and optimize for SMP
Various improvements to the JIT infrastructure
Garbage collector improvements:
       Tuned for SMP
       Support for larger heap sizes
       Unified handling for bitmaps and byte buffers

Dalvik Core Libraries
New, much faster implementation of NIO (modern I/O library)
Improved exception messages
Correctness and performance fixes throughout



Tablet های زیر ، از این نسخه از Android پشتیبانی می کنند :

Samsung P6200 Galaxy Tab 7.0 Plus

Asus Transformer Prime

Samsung P7500 Galaxy Tab 10.1 3G

Motorola XOOM 2 Media Edition 3G MZ608

----------


## powerboy2988

نسخه 4 یا Ice Cream Sandwich

ویژگی های آن :

Optimized for smartphone and tablet use
New user interface, with updated animations, transition effects, multi-touch gestures and live wallpapers
Improved multitasking
New homescreen folders and favorites tray
Improved lock screen with facial unlock
Improved notification menu
Resizable widgets, viewable through the application menu
Built-in screenshot utility
Improved text input and spell-checking
Improved voice input
Ability to monitor and control data usage
Improved accessibility for disabled users
New Peoples app
Improved Gmail and Calendar app
Improved web browser with ability to save web pages and incognito mode
Visual voicemail
Improved camera app with face detection and panorama mode
Improved video recorder with continuous auto-focus, zooming while recording, snapshot while recording and time lapse mode
Redesigned Gallery app with photo editor
Android Beam for transferring data using NFC
Wi-Fi Direct and Bluetooth HDP support


USER INTERFACE
گوگل با استفاده از یک تایپ فیس های جدید در Ice Cream Sandwich که جایگزین تایپ فیس های قبلی Android می باشد را بوجود آورده است که اونو Roboto معرفی کرده… و همچنین افکت های و انیمیشن های جدیدی رو بوجود آورده است..





MultiTasking در UI



…..

یکی دیگه از ویژگی های اون… بحث Face Lock هستش که در اون با استفاده از تکنیک Face Recognition گوشی رو Unlock می کنه…



همچنین شما می تونید Widget های خودتونو تغییر سایز بدین…



و اینکه چیزی به اسم Contact تو این OS نیست و جاش رو به People داده … که می تونید وضعیت دوستانتونو تو Gtalk و … ببینید..

MESSAGING
تغییر آنچنانی نداشته و مثل قسمتی از Gingerbread می باشد…

اما یک قابلیت جدید که ارائه شده …. به اسم Speech to Text هست که با استفاده از تکنولوژی Voice Recognition صدای شما رو به متن تبدیل می کنه..




نسبت به قبل سریعتر شده .. و می تونه BookMark ها رو با google chrome ، سینک کنه…



گوشی های هوشمند زیر همگی دارای این نسخه از Android می باشند :

HTC One X

Samsung Galaxy Nexus

Huawei MediaPad 10 FHD

Panasonic Eluga Power

----------


## powerboy2988

برای شروع کار با Android احتیاج به یک IDE برای برنامه نویسی  و SDK مربوط به Android و SDK مربوط به Java می باشد... :

دانلود Android SDK و برنامه ی setup مربوطه
دانلود Eclipse IDE
دانلود   Java SDK   البته 32 بیتی برای ویندوز

----------


## powerboy2988

Android Components : 

در زیر اطلاعات مختصری در مورد مهمترین اجزاء Android توضیح میدم : 

- Activity : لایه نمایش یک برنامه Android می باشد . به طور ساده همان چیزی که در صفحه می بینید یک Activity می باشد. یک برنامه Android می تواند تعداد زیادی Activity داشته باشد.

- Views and ViewGroups : 
         View : در صفحه نمایش به widget هایی مانند textview,edittext, button و ... view گفته میشود.
        viewGroup : برای چیدمان View ها استفاده میشود . که به طور ساده تر ، لایه های طراحی برنامه می باشند . مانند  : LinearLayout ، AbsoluteLayout و ...

- Intents : پیغام های غیر هم زمان هستند که به برنامه های اجازه می دهد که به صورت کاربردی با یکدیگر کار کنند. 

- Services : برنامه هایی هستند که در background اجرا میشوند که و هیچ UIی ندارند.

- ContentProvider : برای مدیرین کردن دسترسی به یکسری های از دیتاها می باشد . به عنوان با ContentProvider می توانید در برنامه یی که نوشتیم دیتاهای مربوط به Contact ها رو تو برنامه ی خودمان داشته باشیم.

----------


## powerboy2988

شرمنده از دوستان... به علت مشغله نتونستم بروز رسانی کنم...

خوب میرسیم به نصب Android :

بعد از دانلود فایل هایی که گذاشتم، 
ابتدا Java SDK رو نصب می کنید  بعد برنامه ی setup مربوط به Android رو نصب می کنید... 
بعد این کار، تو SDK مربوط به Android ، یک فولدر وجود داره به اسم add-ons که شامل 4تا jar فایل هستش که تو فولدر Plugin مربوط به Eclipse کپی کنید تا تو این IDE با Android کار کنیم...
پس از کپی کردن، اگر Eclipse شما باز هستش، احتیاج به restart داره...
بعد از restart کردن، شما شکل شماره 1 رو می تونید تو Eclipse ببینید..

حالا تنها کاری که مونده، مشخص کردن مسیر Android JDK برای eclipse هستش...

برای این کار ، به منوی Windows - > Preference رفته ، و از درخت سمت کناری، Android رو انتخاب کرده و مسیر Android SDK رو مشخص می کنید ... 

حالا Eclipse آماده برنامه نویسی برای Android هستش...

----------


## srfarzad

اجرای اولین پروژه اندرویدی: *آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*
ابتدا برنامه ایکلیپس رو باز کنید، سپس مراحل زیر رو انجام بدید :
1- از منوی فایل گزینه New و سپس Android Project را انتخاب کنید
2-در کادر ظاهر شده ابتدا نام پروژه خود را بنویسید *آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*
1.PNG
بعد گزینه Next را انتخاب کنید
3- در کادر بعدی باید حدهاق API را انتخاب کنید. در این باید تعیین کنید که این برنامه رو قصد دارید برای چه نسخه ای از اندروید بنویسید . بیشتر گوشی های در حال حاضر اندروید 2.3.3 را دارند. هر چند میتوانید هر کدام را که خواستی  انتخاب کنید
2.PNG
در مرحله آخر نیز باید در قسمت ApplicatonName همان نام اولیه داده شده را که وارد کردید وارد کنید *آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*
در قسمت PackageName : باید نام پکیج اصلی برنامه رو بنویسید که باید حتما از سه قسمت تشکیل شده باشند و با نقطه از هم جدا میشوند
در قسمت Create Activity : نام اکیتیویتی اصلی برنامه رو باید وارد کنید(در حین نوشتن برنامه میتوانید آن را تغییر دهید)
3.PNG*آموزش اندروید آموزش برنامه نویسی اندرویدبرنامه نویسی اندرویداندروید استودیوآموزش اندروید استودیو*
سپس گزینه finish را بزنید تا پروژه ایجاد شود.
*آموزش اندروید آموزش برنامه نویسی اندرویدبرنامه نویسی اندرویداندروید استودیوآموزش اندروید استودیو*

برای اجرای برنامه روی نام پروژه کلیک راست سپس Run As Android Application را انتخاب کنید. *آموزش اندروید آموزش برنامه نویسی اندرویدبرنامه نویسی اندرویداندروید استودیوآموزش اندروید استودیو*

----------


## powerboy2988

قبل از اجرای برنامه Android شما احتیاج به محیطی دارید که Android داشته باشه که می تونید یا از یک دستگاه که روی آن Android نصب شده استفاده کنید یا یک Virtual Device درست کنید و برنامه ها روی آن اجرا کنید. 

این قسمت آموزش، شما رو با ساختن Virtual Device آشنا می کنیم...

برای ساخت، از تو محیط Eclipse به منوی Windows - > Android SDK and AVD manager رو انتخاب کنید ،

اگر از قبل Virtual Device ی ساخته باشید، در لیست نمایش داده شده، می تونید اونو ببنید.

حالا برای ساخت، بر روی دکمه New کلیک کرده تا پنجره جدید باز شود :

در این پنجره، name را برابر با اسمی که برای VD می خواهید بدید

Target : محیطی که برای VD می خواهید داشته باشد که برنامه ی شما در آن اجرا شود

SD Card .. 
 Size: برای تعیین کردن سایز SD Card

Snapshot : در صورتی که آن را Enable کنید می توانید از محیط VD عکس بگیرید.

Skin : برای مشخص کردن resolution مربوط به VD می باشد که می توانید به 2 صورت تعیین کنید :

یا از default هایی که هست استفاده کنید 
یا resolution را به صورت عددی وارد کنید 


hardware : 

که در این قسمت می تونید ، قسمت های سخت افزاریی برای VD انتخاب کنید 
از نظیر :
Device ram size 
Max VM Application heap size
, ...


در عکس دوم، یک نمونه استاندارد از VD رو می تونید ببنید و مثل اونو برای کارهای خودتون بسازید

----------


## srfarzad

ویجت در اندروید : *آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*
ویجت ها در اصل همون کامپوننت های برنامه نویسی اندروید هستند که در محیط های مثل دات نت اگه کار کرده باشید اشنایی دارید. در این تاپیک بیشتر ویجت های مهم و کاربردی اندروید را بررسی خواهیم کرد.
**برای استفاده از این ویجت ها حتما باید XML رو بلد باشید.(اگه زیاد هم کار نکرده باشید براحتی یاد میگیرید)
1- TextView :
این ویجت برای نمایش متن ها استفاده میشود .

 <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="salam"
         />


این xml که در نوشته شده یک Textview تعریف شده و دارای یک متن salam برای نمایش هست.
        android:layout_width="fill_parent" : این متد که در بیشتر ویجت ها استفاده میشود تعیین می کند که این ویجت اندازه عرضش چقدر باشه ، که میتونید سه مقدار واسش تعریف کنید
- fill_parent : کل اندازه عرض را در اختیار میگیره.
- wrap_content : یعنی اندازه رو منحصر کن به طول نوشته. یعنی اندازه رو طول رشته قرار میدهد
*هر جند میتوانید اندازه را دستی وارد کنید. ولی بهترین راه بهمین صورت میباشد.

2- ویجت Edittext : این ویجت برای ورود اطلاعات بکار میرود و در اصل یک کادر متن میباشد.برای خصوصیات ان نیز میتوانید از خصوصیات textview استفاده کنید .

دیگر خصوصیات مهم ویجت های

1-2- تغییر رنگ پس زمینه:


android:background="#3500ffff"

**کد رنگ بایستی وارد شود
2-2- طراز بندی ویجت :
android:layout_gravity="center"
در این مثال تراز بندی رو وسط قرار دادیم که میتونید right,left و یا Center بزارید.
2-3- اندازه متن نوشته :

android:textSize="24.5sp"

2-4- متن نوشته

android:text="test Message"

2-5- Hint : برای مواقعی که در ویجت های EditText یا AutoCompleteTextView یک متن پیش فرض قرار بگیرد


android:hint="message"

*آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*
3-ویجت دکمه Button :
تقریبا همه با این ویجت آشنایی دارند و یک دکمه میباشد .

<Button
android:id="@+id/exit_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/exit_btn" />

4- ویجت ImageView
این ویجت برای نمایش تصاویر بکار میرود
برای نمایش تصاویر باید آنها را در پوشه های Drawable بزارید که خودشون شامل سه پوشه میشن. برای این هستش که بسته به اندازه گوشی خودش تصویر رو انتخاب میکنه پس بهتر که یک تصویر با چند اندازه رو آماده کنید.

    <ImageView 
        android:id="@+id/splashScreenImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/starfighter" />

5-ویجت لیست ویو : این ویجت برای لیست کردن اطلاعات بکار میرود . و در بیشتر اپلیکیشن ها بکار میرود.

<ListView
android:id="@android:id/list"
android:layout_gravity="right"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
android:drawSelectorOnTop="false"
/>    


برای فراخوانی این ویجت باید حتما در قسمت جاوا با استفاده از دستورات زیر استفاده کنید :
1-5- ابتدا یک آرایه ایجاد می کنیم.

private static final String[] items={"Create New SMS","Inbox","Sent","Draft","Outbox","Delivery Report "};

سپس اون رو فراخوانی میکنیم و اندیس به اندیس فراخوانی میکنیم

 setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_  list_item_1,items));


ولی قبل از اینها در قسمت بالای کلاس باید 

public class nameActivity extends ListActivity 

حتما باید از ListActivity ارث بری شود

بقیه بزودی اضافه میگردند *آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*

----------


## srfarzad

کار با منو ها در اندروید:
در اندروید دو نوع منو وجود دارد :
*آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*
1- Option Menu :
این منو در بیشتر برنامه های کاربردی وجود دارد و یکی از الزامات اپلیکیشن های موبایل میباشد.
تصویر نمونه زیر یک مثال را نمایش میدهد :
1.PNG

برای ایجاد منو باید کارهای زیر انجام شود :
1-1 : باید تابع onCreateOptionsMenu  را از منوی Source->override/implements Methiods انتخاب کنید تا تابع مربوطه اضافه گردد.
برای مثال 3 گزینه منو را اضافه می کنیم

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        menu.add(1,searchBtnId ,searchBtnId,"Search");
        menu.add(2,scheduleBtnId ,scheduleBtnId,"List Chanell");
        menu.add(group2Id,playBtnId ,playBtnId,"Play");
      menu.add(group2Id,stopBtnId ,stopBtnId,"test2");
        // the following line will hide search 
        // when we turn the 2nd parameter to false
        menu.setGroupVisible(1, false);
        
        return super.onCreateOptionsMenu(menu);
    }


1-2 : بعد نوبت به این است که وقتی رو گزینه مورد نظر کلیک شد، کار مورد نظر را انجام بده:
برای اینکار نیز از  منوی Source->override/implements Methiods انتخاب کنید  و گزینه   را انتخاب کنید onOptionsItemSelected تا تابع مربوطه اضافه گردد.
*آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        
        switch(item.getItemId())
         {
         case 1:
            Toast.makeText (getApplicationContext(),"TV 2" , Toast.LENGTH_LONG).show ();
          break;
         case 2:
             final Intent intent1 = new Intent(this, HomeActivity.class);
              startActivity(intent1);
              break;
         case 3:
          //txt.setText("you clicked on item "+item.getTitle());
              break;

         }
        return super.onOptionsItemSelected(item);
    }

برای افزودن ایکن نیز به منو باید :


menu.add(1, 1, 0, "Blu-Ray").setIcon(R.drawable.bluray);

2- Context Menu  :

این منو یک دیالوگ میباشد که دارای  تعدادی گزینه برای انتخاب شدن میباشد.
 باید مانند option Menu تابع مورد نظر افزوده شود :

      @Override  
    public boolean onContextItemSelected(MenuItem item) {  
            if(item.getTitle()=="Action 1"){function1(item.getItemId());}  
        else if(item.getTitle()=="Action 2"){function2(item.getItemId());}  
        else {return false;}  
    return true;  
    }  

برای انتخاب گزینه مورد نظر نیز

      @Override  
    public boolean onContextItemSelected(MenuItem item) {  
            if(item.getTitle()=="Action 1"){function1(item.getItemId());}  
        else if(item.getTitle()=="Action 2"){function2(item.getItemId());}  
        else {return false;}  
    return true;  
    }  

*آموزش اندروید  آموزش برنامه نویسی اندروید برنامه نویسی اندروید اندروید استودیو آموزش اندروید استودیو*

----------


## ArMin.AM

بسیار ممنون دوست عزیز ، در صفحه ی قبل لینک  مربوط به android-sdk از کار افتاده و پیغام invalid میزنه ، اگر براتون امکان پذیر هست یک لینک دیگر بدهید
با تشکر

----------


## powerboy2988

درست شد...

----------


## danijoon

لطفا ادامه بدید
مرسی

----------


## dr_jacky_2005

> لطفا ادامه بدید
> مرسی


چی شد ؟ :| تا به ما رسید ، وا رسید ؟! :|

----------


## powerboy2988

من واقعا عذر می خوام.. مدتی هست که سرم خیلی شلوغ شده .. ... 


تلاشمو می کنم که ادامه آموزش رو سریعتر بزارم.


بازم شرمنده

----------


## yaas135

سلام
ما بی صبرانه منتظریم

یه سوال:
من جاوا کار نکردم، دوست داشتم برای نوشتن اندروید با پایتن شروع کنم
الان پیشنهاد شما اینه که برای اندروید برم سواغ زبان نیتوش یعنی جاوا یا با همون پایتن ادامه بدم؟

----------


## powerboy2988

شما با پایتون هم می تونید کار کنید... من باهاش کار نکردم...  

نظری نمی تونم بدم.. اما Java رو پیشنهاد می کنم ، چون خیلی خوب ازش پشتیبانی میشه و اینکه زبان Native هم C هستش نه Java.

----------


## mehrdad_shahian

سلام

چرا فایل pdf آموزشتون رو نذاشتین؟بهتر نیست که به صورت یک فایل هم ارائه بشه؟

مرسی

----------


## hamid1999

چرا پست جدید نمیذارید؟؟؟

----------


## naserzadeh

اگه ادامه بدین فکر کنم تعداد علاقمندان بیشتر میشه

----------


## mjnikbn

و ما همچنان منتظر ادامه آموزش هستیم ...

----------

