ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 7 1234567 آخرین
نمایش نتایج: از 1 به 10 از 65
  1. #1
    2012/01/04
    101
    2

    آموزش برنامه نويسي اندرويد

    سلام.
    راستش ديدم انجمن اندرويد خيلي خاليه حتي يه صفحه کامل هم موضوع توش نيست با اينکه توي اين صنعت استفاده از چيزايي مثل اندرويد يا ... خيلي خيلي ميتونه کاربردي باشه.
    براي همين تصميم گرفتم اين تاپيک رو ايجاد کنم.

    يه چيز ديگه هم اينکه سعي ميکنم مبناي آموزش ها رو چيزايي قرار بدم که به درد دوستان بيشتر بخوره و بتونند ازش براي انجام پروژه هاشون استفاده کنند.

    اين پست اول رو ميزاريم براي ليست لينک آموزش ها و توي پست هاي بعد خود آموزش هارو قرار ميديم. سوالات مربوط به خود آموزش هارو همينجا بپرسيد ولي لطفا براي سوالات ديگه تاپيک جدا بزنيد تا براي افراد ديگه هم راحت قابل دسترسي باشه.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    ديگر مطالب :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت





    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  2. #2
    2012/01/04
    101
    2

    پاسخ : آموزش برنامه نويسي اندرويد

    بسم الله الرحمن الرحيم

    1. آماده سازي

    اول از هر چيز نياز داريم تا محيط برنامه نويسي رو آماده کنيم. و ميتونيم يک شبيه ساز هم براي تست کار ها ايجاد کنيم.

    براي شروع کار به چند تا چيز نياز داريم که بايد اونارو دانلود کنيم.

    1. JDK : اين مربوطه به جاوا هست و مخفف Java Developer Kit هست . کامپايلر و .... جاوا توي اين بسته قرار داره و مخصوص برنامه نويسان هست. براي اجراي برنامه هاي جاوا JRE يا Java Runtime کافيه که البته اين بسته توي JDK هست. براي دانلود يا بايد به سايت جاوا بريد که تحريمه و اشکالي نداره ميتونيد از

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دانلود کنيد (اينجا چند نسخه رو داره که شما نسخه JDK 7 رو دانلود کنيد. اگه سيستمتون 64 بيتي هست توصيه ميکنم هم نسخه 32 بيتي و هم 64 بيتي رو نصب کنيد و يا فقط 32 بيت رو دانلود و نصب کنيد)

    2. Android SDK : کتابخونه ها و شبيه ساز و .... توي اين بسته قرار داره. همينطور يک نسخه ويرايشگر Ecilips مخصوص اندرويد. براي دانلود ميتونيد به سايت رسمي اندرويد مراجعه کنيد ولي چون ما تون ايران حقوق بشر رو رعايت نميکنيم و با اسراعييل حقوق بشر را در سطح بين الملل به خصوص براي کودکان غزه ايجاد نميکنيم تحريم هستيم. ولي اون رو هم ميتونيد از

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    دانلود کنيد (اينجا با توجه به اينکه 64 بيتي هستيد يا 32 بيتي نسخه برنامه اصلي رو که دانلود کنيد کافيه که حدود 350 مگ هست. ولي اگه مايل بوديد ميتونيد بجاي اون نسخه با پکيج هاي کامل رو دانلود کنيد که 5 گيگ هست حدودا. فرقي هم در حين کار و خروجي نداره تقريبا ولي با پکيج هاي کامل ميتونيد همه نسخه هاي اندرويد رو که توي ان پکيج ها باشه روي سيستم عاملتون شبيه سازي کنيد, البته اگه نسخه اصلي که حدود 350 مگ هست رو هم دانلود کنيد ميتونيد بعد پديتش کنيد و بقيه پکيج ها رو دانلود کنيد)

    اين دو تا رو اگه دانلود کنيد ديگه به چيزي اضافه نياز نداريد. ولي يه برنامه ديگه هم هست که ميتونه خيلي کمکتون کنه توي کيفيت شبيه ساز. فعلا ادامه ميديم.

    بعد از اينکه دانلود تموم شد و JDK رو نصب کرديد و SDK هم توي هاردتون قرار داديد ميتونيد کارو شروع کنيد.

    فايل مربوط به اندرويد SDK که دانلود کرديد احتمالا شامل يک فايل به نام SDK Manager.exe و يک پوشه به نام sdk و يک پوشه به نام eclipse باشه ( احتمالا که ميگم به خاطر اينه که نسخه من يکيم قديمي تره شايد يه چيزايي خيلي کوچيک مثل جاي اينا فرق داشته باشه. ولي تو کار اصلي مشکلي ان شاءالله پيش نمياد :read
    فايل SDK manager رو کليک کنيد تا باز شه (ممکنه يه صفحه سياه بياد و بره و چند ثانيه اي طول بکشه تا پنجره رو به نمايش دربياره )
    يه همچين پنجره اي بالا مياد ( حتما دقيق اين شکلي نيست چون به اين يکم چيزاي ديگه هم بهش اضافه شده)


    http://www.axgig.com/images/08120850861807628916.png

    توي اين پنجره شما ليست پکيج هايي که نصب کرديد يا ميتونيد دانلود کنيد رو نشون ميده. با اينا الان زياد کاري نداريم. از منو هاي بالاي همين پنجره Tools -> Manage AVDs ... رو انتخاب کنيد تا يه پنجره جديد باز شه که مربوط به دستگاه هاي شبيه سازي شدس. اگه روي گزينه New کليک کنيد يک پنجره باز ميشه که مشخصات اون ديوايس يا ستگاه رو بايد وارد کنيد.


    http://www.axgig.com/images/53063159121768945627.png

    AVD Name : اسم دستگاه مجازي. مثلا اسشمو ميزاريم virtual_nexus
    Device : اون دستگاهيي که ميخايد شبيه سازي کنيد. مثلا Nexus S v رو انتبخاب ميکنيم. (يا هرچي که مايل بوديد)
    Target : سيستم عامل ديوايس که با توجه به پکيج هايي که دانلود کرديد قابل انتخاب هست. اگر فقط نسخه اصلي SDK رو دانلود کرده باشيد احتمالافقط يک گزينه و اونم آخرين نسخه اندرويد موجود رو ميوتنيد انتخاب کنيد.
    CPU/ABI : که سي پيو دستگاه رو مشخص ميکنه ولي احتمالا الان غير ARM چيزي رو نتونيد انتخاب کنيد. بعدا ميبينيم چطوري سيپيو انتل رو هم اضافه کنيم که سرعت دستگاه مجازي رو چند براربر ميکنه. ولي فعلا همون ARM رو انتخاب کنيد.
    Keyboard : اگه تيکش رو بزنيد ميتونيد به جاي استفاده از صفحه کليد مجازي اندرويد با صفحه کليد کامپيوتر تايپ کنيد
    Skin : اگه تيکش رو بزنيد کليد هاي سخت افزاري روي گوشي رو هم نشون ميده تا ازش استفاده کنيد

    Front Camera و Back Camera : اگه خواستيد ميتونيد يک وب کم رو مشخص کنيد تا به عنوان دوربين براي برنامه هايي که به دوربين نياز دارند استفاده کنه. گزينه Emulated هم باعث ميشه دوربين يه تصوير متحرک از قبل طراحي شده توسط خود گوگل رو نشون بده.

    Ram و VM Heap : رم خيلي توي سرعت تاثير داره. فعلا حد اقل روي 512 اگه ميشه قرارش بديد. يا بيشتر تا جايي که خود AVD Manager وارنينگ نده. بعدا بيشترش ميکنيم ولي اگه الان زيادبزاريد ( فکر کنم بيشتر 768 مگ ) احتمالا شبيه سازتون اجرا نشه
    internal storage : حافظه داخلي دستگاه. همون که هست احتمالا کافي باشه
    SD Card : حافظه خارجي که يه سايز بهش اختصاص بديد. مثلا 200 مگ يا هرچي خواستيد.
    دو گزينه ديگه براي تيک زدن اون پايين هست که فقط بايد يکيش رو تيک بزنيد. براي الان فقط Snap Shot رو تيک بزنيد تا شبيه ساز براي دفعات بعدي که ميخايد استفاده کنيد سريع تر اجرا بشه



    http://www.axgig.com/images/05625266240479224705.png

    حالا OK رو بزنيد تا شبيه ساز ساخته بشه. با زدن OK يک پنجره حاوي مشخصات دستگاه نشون داده ميشه. تايدش کنيدحالاب بايد به ليست شبيه ساز ها توي پنجره AVD Manager شبيه سازي که ساختيم اضافه شده باشه و يه تيک هم کنارش خورده باشه .
    اون رو انتخاب کنيد و از پنجره کنار کليد Start و از پنجره باز شده Launch رو بزنيد تا شبيه ساز اجرا شه. يه زمان طولاني اين صفحه به نمايش در مياد :



    http://www.axgig.com/images/79212352215160407393.png

    البته اين زمان فقط دفعه اول که اجرا کنيد شبيه سازو اينطوري هست. دفعات بعد سري تر اجرا ميشه. بعد از اينکه شبيه ساز آماده شد ميتونيد از دستگاه مجازي اندرويد استفاده کنيد و برنامه هاتون رو روش تست کنيد (البته تست با گوشي خيلي خيلي خيل بهتره)

    خوب فعلا براي اين قسمت کافيه.
    تو قسمت بعد احتمال داره يا نحوه افزايش سرعت شبيه ساز رو ببينيم به چه شکل هست يا اينکه برنامه نويسي رو شروع کنيم :smile:



    http://www.axgig.com/images/30178286810663317849.png
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  3. #3
    2011/12/30
    420
    20

    پاسخ : آموزش برنامه نويسي اندرويد

    سلام

    حرکت خيلي خوبي را شروع کرديد.
    مشتاقانه منتظر ادامه هستيم.

    ياعلي
  4. #4
    2012/01/04
    101
    2

    پاسخ : آموزش برنامه نويسي اندرويد

    نقل قول نوشته اصلی توسط sadeghmojtabaei
    سلام

    حرکت خيلي خوبي را شروع کرديد.
    مشتاقانه منتظر ادامه هستيم.

    ياعلي
    خيلي ممنون. خدا کمک کنه ادامه ميديم ان شاءالله
    الان قسمت دوم هم اضافه ميشه :read:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  5. #5
    2012/01/04
    101
    2

    پاسخ : آموزش برنامه نويسي اندرويد

    2. اولين برنامه

    خوب حالا که کار آماده سازي انجام شده ميريم تا اولين پروژه رو با هم بسازيم :redface:
    از توي پوشه کنار SDK ويرايشگر eclipse رو اجرا کنيد.
    در اولين اجرا نرم افزار از شما آدرس يک فضاي کار رو ميخاد. ميتونيد همون که پيشفرض هست بزاريد يا اينکه يک فضاي جديد بهش معرفي کنيد تا پروژه هاتون رو اونجا قرار بديد. البته بعدا هم ميشه فضاهاي ديگه اي ايجاد کرد. بهتره تيک مربوط به ذخيره به عنوان پيشفرض رو هم بزنيد تا ديگه از شما در اينباره نپرسه.
    خوب الان صفحه اول eclipse براي شما باز ميشه. که احتمالا يه سري لينک توش هست. اين صفحه رو با کليد ضربدر روي تبش ميبنديم تا به محيط برنامه نويسي بريم :



    http://up.ashiyane.org/images/kr1coqoyrb4a6ikge2.png

    حالا از منوي بالاي نرم ويرايشگر File -> New -> Android Application Project رو انتخاب ميکنيم تا صفحه ايجاد پروژه اندرويد باز شه :


    http://up.ashiyane.org/images/n2ffflz7nezzxb4vur64.png

    Application Name : نام نرم افزار
    Project Name : نام پروژه ( چيزي که تو eclipse نشون داده ميشه )
    Package Name : نام پکيج برنامه که خيلي مهمه. اين روش نام گزاري يک روش نام گزاري مرسوم هست. تقريبا مثل اينه که شما اسم سايت رو بر عکس بنويسيد :read: . اول com داره ( البته من معمولا به ir تغيرش ميدم برا پروژ ها ) بعدش نام مثلا شرکت يا کمپاني و بعد هم نام برنامه. يادتون باشه براي نسخه هاي مختلف يک نرم افزار بايد از يک نام گزاري يکسان استفاده کنيد تا اندرويد بفهمه بايد اين اين نسخه رو جايگذين نسخه قبلي کنه همينطور جاهاي مثل بازار يا مارکت گوگل هم بتونه بفهمه اين نسخه پديت کدوم نسخه هست و به کاربرا پيام بده که نرم افزارشون رو پديت کنند.

    Minimum Required SDK : بايد کمترين نسخه اي که برنامتون بهش نياز داره رو انتخاب کنيد. يعني اگه نرم افزارتون به امکانات نسخه ي 4.3 نياز نداره بايد اون رو روي نسخه هاي کنتر تنظيم کنيد. کاربراني ميتونند نرم افزار شما رو نصب کنند که نسخه سيستم عاملشون از اين نسخه که اينجا تعين ميکنيد بيشتر يا همين باشه.
    Target SDK : بالاترين نسخه اي که ميخايد نرم افزار روش اجرا بشه رو انتخاب کنيد (البته روي نسخه هاي بالا تر از اين هم اجرا ميشه. ولي هرچي اينجا بالاتر بزاريد در زمان کد نويسي خود ويرايش گر کد هايي که تا Target SDK منقضي شده رو مشخص ميکنه. يعني مثلا اگه شما روي 4.3 تنظيم کنيد و يک تابع از اين نسخه حذف شده باشه , اگه از اون تابع استفاده کرديد ويرايشگر به شما هشدار ميده )
    Compile With : اين هم مشخصه مه چيکار ميکنه. التبه توي اين گزينه با توجه به پکيج هايي که توي SDK گزاشتيد محدوديت داريد.
    حالا بر روي Next کليک کنيد. صفحه بعدي هم فعلا پيشفرضش مناسبه پس دوباره روي Next کليک ميکنيم. در صفحه بعدي ميتونيد آيکون برنامه رو انتخاب کنيد که البته بعدا هم ميشه اينکارو کرد.



    http://up.ashiyane.org/images/tc2b2v5qu3koix3bzlsz.png

    باز Next و صفحه بعدي هم روي پيشفرض و Next تا به اين صفحه ميريسيم :


    http://up.ashiyane.org/images/iusuivrkw3hr27uxrrwd.png

    درمورد Activity جلوتر ان شاءالله بيشتر توضيح ميديم ولي فعلا براي حالا کافيه بدونيد Activity Name نام کلاس جاوا صفحه ي اصلي برنامه و Layout Name نام فايل XML صفحه ي اصلي هست.

    حالا بر روي Finish کليک کنيد. خوب الان پروژه ساخته شده. شايد يکم صفحه eclipse الان ترسناک به نظر بياد ولي نگران نباشيد. هيچ چيز مشکلي نداره. قدم به قدم جلو ميريم تا ببينيم چي به چيه.
    بهتره با ساختار پروژه اندرويد شروع کنيم تا کم کم راه بيفتيم.
    در سمت چپ در پنجره Package Explorer شما يک همچين چيزي رو ميبينيد :



    http://up.ashiyane.org/images/rfoahii6hjkzv2w64zc4.png

    خوب اينجا پوشه ها و فايلايي که در برنامه استفاده ميشه قرار داره. اولين پوشه اي که نشون داده شده يک پوشه آبي رنگ هست که شايد براي شما يک علامت خطا قرمز کنارش باشه. يکم که صبر کنيد بايد اون علامت بره.

    اين پوشه کلي پروژه شما هست. توي اين پوشه از بالا به پايين اول به src بر ميخوريم. کد هاي جاوا برنامه در اينجا قرار ميگيره. الان در اين همون پکيج اصلي و کلاس مربوط به صفحه اول برنامه هست.

    زير اين پوشه پوشه gen قرار داره. محتوياط اين پوشه توسط خود ويرايشگر ساخته ميشه. اگه کامل بازش کنيد به دو تا فايل جاوا بر ميخوريد. فايل R.java رو زياد باهاش کار ميکنيم. کارش اين هست که توش پر متغير از نوع int هست. که درواقع آي دي هر چيزي هست که شما ميخايد به نوعي از خارج از کد جاوا به داخل کد جاواتون بياريد. مثلا شما يک عکس رو به پروژه اضافه ميکنيد. بعد يک شي از يک کلاس تصوير ميسازيد (فرضا البته). بعد براي اينکه بگيد اين کلاس تصوير چه عکسي رو نشون بده بهش آي دي عکسي رو که وارد پروژه کرديد ميديد که يک عدده. خودش تشخيص ميده که شما کدوم عکسو ميگيد و اون عکسو داخل کلاس تصوير قرار ميده. اگه متوجه نشديد ايرادي نداره در ادمه بيشتر باهاش کار ميکنيم.
    دو تا پوشه زير gen رو زياد کاري نداريم الان. فعلا همين کافيه که بدونيد لايبري هاي مربوط به اندرويد توشون هست.
    پوشه assets هم مربوط به هر محتوايي ميتونه باشه. مثل فيلم و ... ولي ازش زياد استفاده نميکنيم چون چيزايي که توش قرار ميگيره يکم سخت ميشه بهش دسترسي پيدا کرد. البته استفاده هاي خاص خودشو هم داره. پوشه bin رو هم کاري نداريم. libs هم همينطور. ولي ميريسيم به يک پوشه مهم به نام res . توي اين پوشه اکثر محتوا هايي که تو برنامه استفاده ميشه قرار ميگيره. از تصاوير تا صوت و مهم تر از همه فايل هاي xml صفحات برنامه توش جاي عناصر برنامه مثل کليد ها و ... مشخص ميشه قرار داره. فايل هايي که توي اين پوشه قرار ميگيرند داراي يک id ميشند که توي فايل R.java در پوشه gen قرار ميگيره. خود اين پوشه يه سري پوشه داخل خودش داره.
    پوشه هايي که با نام drawable آغاز ميشند مربوط به فايل هايي مثل تصاوير هستند. همونطور که ميبينيد چند تا پوشه داريم که با اين نام شروع ميشه. دليلش اين هست که شما ميتونيد يک تصوير رو براي رزوليشن هاي مختلف طراحي کنيد و توي پوشه مربوط قرار بديد. بعد خود سيستم با توجه به رزوليشن گوشي يکي از اين تصاوير رو از يکي از اين پوشه ها انتخاب ميکنه. البته ميتونيد هم اينکارو نکنيد و فقط يک نسخه از اون تصوير در drawable-hdpi قرار بديد.

    زير اين پوشه ها پوشه layout قرار داره. که فايل هاي xml مربوط به صفحات برنامه يا ... قرار ميگيرند. توي اين فايل هاي xml جاي اجزاي برنامه مثل کليد ها و ... مشخص ميشه.

    پوشه هاي بعدي هم فعلا کاري نداريم. چيزاي مثل ساختار منو ها و يا مقادير ثابت توي اونا قرار ميگيره.

    زير اين پوشه ها يک فايل خيلي مهم به نام AndroidMaifest.xml قرار داره. توي اين فايل مشخصات برنامه از نام برنامه تا چيزايي که قراره استفاده بشه قرار داره. مثلا اگه شما قرار باشه از بلوتوث در برنامه استفاده کنيد بايد قبلش توي اين فايل مشخص کنيد مگر نه در هنگام اجرا برنامه کرش ميکنه.

    خوب حالا کارو جلو تر ميبريم. بهتره اول يه نگاهي به صفحه فعلي برنامه بندازيم. اين فايل رو باز کنيد res -> layout -> activity_main.xml تا اين صفحه رو ببينيد :



    http://up.ashiyane.org/images/qewdb0uphuwzz59mzug3.png

    اين شکل ظاهري صفحه اصلي برنامه هست. در واقع يه پيشنمايش از اونه. ويرايشگر اين صفحه رو از روي فايل xml ساخته که اگع دقت کنيد زير همين پيشنمايش دو تا تب Graphical Layout و activity_main.xml قرار داره. الان روي Graphical Layout هستيم. که شما يک صفحه با يک متن Hellp world ميبينيد.
    براي اينکه با ساختار اين صفحه بيشتر آشنا شمي روي activity_main.xml کليک کنيد تا کد xml مربوط به نمايش دربياد



    کد:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="@dimen/activity_vertical_margin"
      android:paddingLeft="@dimen/activity_horizontal_margin"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      tools:context=".MainActivity" >
    
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    
    </RelativeLayout>
    کدي که ميبينيد يک همچين چيزيه. اول با RelativeLayout شروع شده (شايد چيز ديگه اي برا شما باشه). RelativeLayout يک المان هست که جز layout ها به حساب مياد. اين layout ها کمک ميکنه شما بتوين اجزاي برنامه رو در جاي خودش بنويسيد. يکي از خوش دست ترين هاش همين RelativeLayout هست.

    داخل اين RelativeLayout يک TextView قرار داره. TextView براي نمايش متن به کار ميره. همونطور که ميبينيد الان توش سه تا خصوصيت تعريف شده.
    layout_width طول اين شي هست که الان روي wrap_content تنظيم شده. يعني طول شي به اندازه محتويات داخلش باشه. بنابر اين طول اين TextView به اندازه اي ميشه که متنش توش جا بگيره. layout_height هم خصوصيت مشابه ولي براي ارتفاع اين عنصر هست. text هم متن رو مشخص ميکنه که الان آدرس يک متن خارجي رو داده. ميتونيد محتوياتش رو پاک کنيد و هرچي خاستيد بنويسيد. مثلا :


    کد:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="@dimen/activity_vertical_margin"
      android:paddingLeft="@dimen/activity_horizontal_margin"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      tools:context=".MainActivity" >
    
      <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="اين يک متن است" />
      
    </RelativeLayout>
    الان اگه به Graphical Layout بريد ميبينيد يک صفحه هست که توش متن - اين يک متن است - رو نوشته . خوب حالا روش کليک کنيد و کليد delete رو از روي کيبورد بزنيد تا پاکش کنيم.


    http://up.ashiyane.org/images/pznqaz7sw047l8kekiyr.png

    حالا از سمت چپ اين پنجره ميتونيم آيتم هاي مورد نياز رو به صورت کشيدن و رها کردن در صفحه قرار بديم. ( از قسمت Palette )
    به عنوان مثال يک کليد رو از قسمت Palette و Form Widgets به روي صفحه ميکشيم ( کليد همون Button هست )
    بعد از همون جا يک Large Text ميکشيم و زير Button قرار ميديم ( Large Text همون TextView هست ولي سايز نوشتش بزرگ تره )



    http://up.ashiyane.org/images/e1na4ftctkhysj154s4s.png

    حالا روي Button که در صفحه قرار داره راست کليک کنيد و Edit Text رو انتخاب کنيد. يک پنجره باز ميشه که پايينش بالاي کليد Ok و Cancel و ... يک جايي براي نوشتن قرار داره که الان توش نوشته Button. اون رو تغير ميديم مثلا عبارت - کليک کنيد - رو داخلش مينويسيم و ok ميکنيم
    براي Large Text هم همينکارو ميکنيم و مثلا متنش رو - اين يک نوشته است - قرار ميديم.
    حالا بايد يک id به کليد و متن بديم تا بتونيم از توي کد java بهشون دسترسي داشته باشيم. روي کليد راست کليک کنيد و Edit ID رو بزنيد. حالا به جاي آي دي button1 يک آي دي با مفهموم مثلا newButton قرار ميديم. براي نوشته در صفحه هم همينطور و مثلا newTextView قرار ميديم. حالا control + s رو بزنيد تا ذخيره بشه.



    http://up.ashiyane.org/images/dpifqg6phqujsw3hzrve.png

    حالا ميريم سراغ کد جاوا. از پوشه src فايل MainActivity.java رو باز کنيد.

    يک چنين کلاسي رو ميبنيد :


    کد:
    package ir.tutorial.firstapp;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    
    public class MainActivity extends Activity {
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      }
    
    
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
      }
      
    }
    فعلا تابع onCreateOptionsMenu رو کلا پاک ميکنيم تا گيج نشيم. تابع onCreate اولين تابعي هست که صدا زده ميشه. توي اين تابع متويند مقدار دهي هاي اوليه رو انجام بديد. الان ما توي يک کلاس از نوع Activity هستيم. ميتونيم يک فايل XML رو بهش نسبت بديم که زمان اجراي اين کلاس اون فايل رو نمايش بده. اين خط هم همينکارو ميکنه و اون فايل xml که داشتيم روش کار ميکرديم رو به اين Activity نسبت ميده :

    کد:
    setContentView(R.layout.activity_main);
    حالا ميخايم برناممون رو کامل کنيم و کاري کنيم که با زدن کليدي که توي برنامه گزاشتيم متن اون نوشته تغير کنه. خوب توي تابع onCreate بعد از setContentView يک شي از کلاس Button تعريف ميکنيم .

    کد:
    Button button;
    با نوشتن اين خط ويرايش گر يک ايراد ميگره و کنار خط يک علامت اخطار با چراغ نشون ميده. اين علامت يعني ويرايشگر براي حل اين مشکل راه حل هاي رو پيشنهاد ميده. ميتونيد رو علامت اخطار کليک کنيد يا روي خط مورد نظر بريد و کليد control + 1 رو بزنيد تا يک منو باز شه. گزينه import 'Button' رو بزنيد تا کلاس مربوط به Button به برنامه ضميمه شه. حالا بايد در اين شي اون کليدي که توي فايل xml گزاشته بوديمو قرار بديم. براي اين کار از تابع findViewById استفاده ميکنيم. يک ورودي داره که اون ورودي آي دي عنصري هست که ميخايم پيدا کنه. ما اسم آي دي کليد رو newButton قرار داديم. پس توي کلاس R.java يک متغير به همين اسم ساخته. پس کليدو اينطوري پيدا ميکنيم :

    کد:
    button = (Button)findViewById(R.id.newButton);
    براي اون TextView هم که قرار داديم به همين شيوه عمل ميکنيم :

    کد:
    package ir.tutorial.firstapp;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button;
        button = (Button)findViewById(R.id.newButton);
        TextView textView;
        textView = (TextView) findViewById(R.id.newTextView);
      }
      
    }
    حالا بايد مشخص کنيم که با زدن کليد چه انتفاقي مي افته. براي اينکار از با تابع setOnClickListener داخل شي button اينکارو انجام ميديم. اگه با جاوا آشنايي نداشته باشيد شايد الان با يه چيز عجيب و جالب برخورد کنيد. اينکه الان قراه توي اين تابع به عنوان ورودي يک تابع تعريف کنيم :surprised: . زياد نگران نباشيد. به مرور زمان آشنا ميشيد. يا اگه خيلي علاقه منديد درمورد interface توي جاوا سرچ کنيد :

    وقتي که داريد تايپ ميکنيد button.setOnClick .... پيشنهادي که خود ويرايشگر ميده رو با کليد اينتر قبول کنيد بعد توي ورودي بنويسيد new... و control+space و دوباره اينتر بزنيد تا سريع کار هاي مورد نياز توسط ويرايشگر انجام بشه. به آخرين پرانتز هم ; اضافه کنيد. بعد اون نشانه گر متن رو بياريد روي OnClickListener و control + 1 يا راست کليک و Quick Fix رو بزنيد و از منو باز شده import 'OnCli .... رو انتخاب کنيد تا خط زير به برنامه اضافه بشه و خطا ها از بين بره :


    کد:
    import android.view.View.OnClickListener;
    حالا در تابع onClick هرچيزي که بنويسيد موقع کليک بر روي کليد اجرا ميشه.
    ما ميخايم توي اين تابع به textView دسترسي داشته باشيم بنابر اين بايد textView رو عمومي تعريف کنيم. بنابر اين کدمون به اين شکل در مياد :


    کد:
    package ir.tutorial.firstapp;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    
    	
    	TextView textView;
    	
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button;
        button = (Button)findViewById(R.id.newButton);
        
        textView = (TextView) findViewById(R.id.newTextView);
        
        button.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    								
    			}
    		});
      }
      
    }
    همونطور که ميبنيدي textView بالاي onCreate تعريف شده. حالا داخل onClick با استفاده از تابع setText داخل شي textView متن TextView رو عوض ميکنيم :

    کد:
    package ir.tutorial.firstapp;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
    	
    	TextView textView;
    	
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button;
        button = (Button)findViewById(R.id.newButton);
        textView = (TextView) findViewById(R.id.newTextView);
        button.setOnClickListener(new OnClickListener() {
    			
    			@Override
    			public void onClick(View arg0) {
    				textView.setText("بر روي کليد کليک شد");
    			}
    		});
      }
    }
    اگه بخايد کد رو سيو کنيد ويرايشگر يک ارو ميده


    http://up.ashiyane.org/images/xm0q33fvaq01toypai.png

    اين به خاطر اين هست که توي فايل کد برنامه فارسي نوشتيم و فايل کد برنامه فرمتش فارسي رو ساپورت نميکنه. ولي اگه Save as ut.... رو بزنيد مشکل حل ميشه و فارسي رو هم پشتيباني ميکنه.

    خوب خدارو شکر الان ميتونيم پروژه رو تست کنيم :smile:

    شبيه سازو اجرا کنيد. وقتي شبيه ساز اجرا شد روي پوشه برنامه تو eclipse راست کليک کنيد و Run As -> Android Application رو انتخاب کنيد. حالا بايد کمي صبر کنيد و ميبينيد که برنامه روي شبيه ساز اجره ميشه. حالا روي کليد کليک کنيد و نتيجه رو ببينيد :read:



    http://up.ashiyane.org/images/vjutqm1xdjqvxijmvaw.png


    http://up.ashiyane.org/images/m4s8nvto2x4gqox3gvpc.png

    البته براي تست بعدي پروژه مثلث سمت راست اين گزينه توي نوار ابزار بالاي برنامه کليک کنيد و پروژه مورد نظر رو انتخاب کنيد


    http://up.ashiyane.org/images/i9aaiuffltuvc9j52yb.png

    ----------------

    اگه مفيد واقع شده لطفا با صلواتي براي ظهور آقا صاحب الزمان ياري فرماييد :smile:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  6. #6
    2013/08/30
    1,000
    5

    پاسخ : آموزش برنامه نويسي اندرويد

    سلام

    دستتون درد نکنه واقعا عالی هستش

    خروجیش فقط برای اندروید یا تحت جاوا هم میشه

    من فکر می کنم اگر sdkنصب نشه خروجیش جاوا هستش
  7. #7
    2012/01/04
    101
    2

    پاسخ : آموزش برنامه نويسي اندرويد

    نقل قول نوشته اصلی توسط بنيامين خليلي
    سلام

    دستتون درد نکنه واقعا عالي هستش

    خروجيش فقط براي اندرويد يا تحت جاوا هم ميشه

    من فکر مي کنم اگر sdkنصب نشه خروجيش جاوا هستش
    خواهش ميکنم. لطف داريد.

    نه راستش فقط اندرويد ميشه. چون تقريبا اکثر توابع و کلاس هاي رابط گرافيکيش مال کتابخونه هاي اندرويد هست. همينطوري ساختار پروژش. براي مثال onCreate و يه سري توابع ديگه فقط مخصوص اندرويد هست که صداشون بزنه چون سيستم عامل اندرويد اين شکلي کار ميکنه. البته با همين نسخه eclipse هم که کنار sdk قرار داره ميشه پروژه جاوا نوشت :smile:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  8. #8
    2013/02/04
    298
    6

    پاسخ : آموزش برنامه نويسي اندرويد

    دوست عزيز بسيار سپاس از لطفي که مي کنيد.

    ولي 2 تا پيشنهاد دارم.
    يکي اين که يه تاپيک جداگونه براي سوال و جواب ها زده بشه تا از آشفتگي ها احتمالي جلوگيري بشه و اين تاپيک مخصوص آموزشتون باشه.
    و دوم اين که هر پست آموزشي که ميديد يه نسخه pdf همه ضميمه کنيد چون تو آينده نزديک عکس ها مشکل مي خوره و ... اگه pdf باشه کار خيلي منسجم تر ميشه.
    و در آخر اميدوارم آموزشتون ادامه دار باشه.
    اسمم بابا برقيه مي دونين کارم چيه دلم مي خواد همه جا که با کمک شما
    مصرف برق کم بشه تا برقمون قطع نشه
    مصرف بي رويه کار خيلي بديه موقع پخش کارتون برق تلويزيون
    اگه يه دفعه بره حوصله مون سر مي ره
    هرگز نشه فراموش لامپ اضافي خاموش
  9. #9
    2012/01/04
    101
    2

    پاسخ : آموزش برنامه نويسي اندرويد

    نقل قول نوشته اصلی توسط بابا برقي
    دوست عزيز بسيار سپاس از لطفي که مي کنيد.

    ولي 2 تا پيشنهاد دارم.
    يکي اين که يه تاپيک جداگونه براي سوال و جواب ها زده بشه تا از آشفتگي ها احتمالي جلوگيري بشه و اين تاپيک مخصوص آموزشتون باشه.
    و دوم اين که هر پست آموزشي که ميديد يه نسخه pdf همه ضميمه کنيد چون تو آينده نزديک عکس ها مشکل مي خوره و ... اگه pdf باشه کار خيلي منسجم تر ميشه.
    و در آخر اميدوارم آموزشتون ادامه دار باشه.
    ممنون.
    سوالارو همونطور که تو پست اول گفته شد منم همين نظر رو دارم ولي خوب آخرش وسط مطالب نميشه هيچي هيچي باشه. اصلا تاپيک يه جوري ميشه. تو پست اول مطالب ليست ميشه اينطوري بينش پند صفحه هم باشه راحت ميشه پيدا کرد. ولي خوب سوالاي اين تاپيک هم بايد مخصوص همين آموزش ها باشه يعني اگه درمورد مطالب اين تاپيک بود دوستان همينجا بپرسن تا بقيه هم بعدا راحت سوالاي ديگران راجب مثلا فلان پست رو ببينيند ولي خوب بقيه سوالا تاپيک هاي جدا گونه باشه.
    درمورد پيشنهاد دومتون هم خيلي خيلي ممنون. ان شاءالله حتما عمليش ميکنم :smile:
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
  10. #10
    2012/01/04
    101
    2

    پاسخ : آموزش برنامه نويسي اندرويد

    3. Activity و Intent ها قسمت اول

    حالا که اولين برنامه رو نوشتيم بهتره يکم با ساز و کار يک برنامه اندرويد بيشتر آشنا شيم و بديم برنامه در حالات مختلف دقيقا چيکار ميکنه. اين بخش تا بخش LifeCycle اکتيويتي ها خيلي کمک ميکنه که در ادامه گيج نشيد و راحت بتونيد برنامتون رو مديريت کنيد.

    خوب همونطور که ديديد در پروژه اي که ساختيم يک کلاس به نام MainActivity داشتيم خصوصيات Activity رو به ارث برده بود. پس بهتره ببينيم Activity چيه.
    Activity يک بخشي از برنامه هست که داراي يک صفحه هست. درواقع اين کلاس ميتونه يک رابط کاربري داشته باشه. در واقع صفحه هاي برناممون يک هر کدوم داراي يک Activity مجزا هستند. حالا اندرويد يکي از کاراي مهمش اينه که اين Activity هارو مديريت ميکنه. فرض کنيد شما روي گوشيتون سه تا برنامه داشته باشيد. برنامه A و B و C فرض کنيد هر کدوم از اين برنامه ها يک Activity داشته باشند. شما اول برنامه A رو اجرا ميکنيد . اندرويد برنامه A رو به شما نشون ميده. بعد تصميم ميگيريد برنامه B رو اجرا کنيد. حالا برنامه B روي برنامه A قرار ميگيره و شما برنامه B رو در حال اجرا ميبينيد ( توجه داشته باشيد هنوز برنامه A بسته نشده ) بعد برنامه C رو اجرا ميکنيد. بعد از اينکه برنامه C اجرا شد اندرويد ميبينه که مثلا رم داره کم مياد. وقتي اين اتفاق افتاد پايين ترين برنامه رو ميبنده. الان ديگه A بسته شده ولي هنوز B هست. حالا شما اگر برنامه C رو ببنديد (مثلا با دکمه بک) ميتونيد به برنامه B بريد و برنامه B بدون اينکه بسته شده باشه کارش رو ادامه بده. در واقع اين Activity ها در پشته اي به نام back stack قرار ميگرند. پشته يا stack بر عکس صف هست. در يک صف اگه شما اول وارد بشيد اولين نفري هستيد که کارتون راه مي افته. ولي در پشته يا stack اولين چيزي که کارش راه مي افته آخرين چيزيه که وارد شده. مثلا شما يک جعبه رو فرض کنيد که توش داريد بشقاب ميزاريد. آخرين بشقابي رو که در جعبه قرار داديد اولين بشقابي هست که ميتونيد ازش استفاده کنيد و از جعبه خارجش کنيد.

    برنامه ها معولا داراي چند اکتيويتي هستند. براي آشنايي بهتر ميتوينم يکم با اين اکتيويتي ها کار کنيم. خوب پس طبق قسمت قبلي يک پروژه جديد مثلا به اسم App2-ActivityAndIntent ميسازيم. حالا هر اسمي خواستيد شما قرار بديد. من اسم کامل قرار ميدم تا بعدا که پروژه هارو براي دانلود گزاشتم بتونيد راحت قسمت هاي مختلف رو مربوط رو اگه نياز داشتيد ببينيد و استفاده کنيد.

    خوب پروژه در حالت پيشفرض کي MainActivity داره که فايل main_activity.xml رو به نمايش در مياره.

    در فايل main_activity.xml يک کليد قرار ميديم. ميخايم با زدن اين کليد يک صفحه جديد در برنامه نشون داده بشه.



    http://up.ashiyane.org/images/4ndsce5814d1vgdc0nxo.png

    حالا بايد يک فايل xml ديگه بسازيم تا فعاليت دوم ( اکتيويتي دوم ) اون رو به عنوان رابط کاربري ازش استفاده کنه. براي اين کار يا با انتخاب از نوار ابزر يا انتخاب File -> New -> Android XML File اين صفحه رو باز ميکنيم : (تصوير کمکي آيکون : http://up.ashiyane.org/images/q2i0hu1ufnixyz0ql1i.png)


    http://up.ashiyane.org/images/kdi9oqv9snepmde8qwx4.png


    غير از layout مربوط به اکتيوتي ها که الان قراره بسازيم , خيلي فايلاي xml ديگه هم ميشه ساخت که الان باهاش کاري نداريم. براي همين از قسمت Resource Type گزينه Layout رو انتخاب ميکنيم. Project هم بايد روي پروژمون تنظيم شده باشه. File هم اسم فايل هست که يک سري قوانين رو تو نام گزاري بايد در مد نظر بگيريد. بهتره با حروف کوچيک بنويسيد و بين کلمه ها _ استفاده کنيد. Root Element هم عنصري رو مشخص ميکنه که قراره بقيه عناصر داخل اون قرار بگيرند. فعلا از اون ليست Relative Layout رو انتخاب کنيد. ان شاء الله در بعدا راجب Layout ها حرف ميزنيم. خوب اسم File رو من مثلا قرار ميدم second_activity و روي Finish کليک ميکنيم.
    حالا بايد فايل second_activity.xml به زير مجموعه پوشه layout اضافه شده باشه :



    http://up.ashiyane.org/images/fx6s8e521nl1hb3h5yup.png

    همين فايلو باز ميکنيم. ميبينيد که يک صفحه جديد رو از روي فايل xml ساخته که مثل main_activity.xml ميتونيد توش چيزي قرار بديد. به عنوان مثال يک متن بزرگ داخلش قرار ميديم :


    http://up.ashiyane.org/images/d0lm5wr5hksc13rvr92.png

    همونطور که ميبنيد نوشته خيلي به کنار صفحه چسبيده شده. بهتره با استفاده از خصوصيت margin يکم اون رو از کناره ها دور کنيم. براي اينکار ميتونيم از پنجره properties سمت راست استفاده کنيم. براي تغير خصوصيات يک شي اون رو انتخاب ميکنيم و از اين پنجره خصوصياتش رو تغير ميديم. مثلا الان TextView که ساختيم رو انتخاب ميکنيم. به اين پنجره ميريم و از قسمت Layout Parameters -> Margins مقادير margin رو تغير ميديم. مثلا top margin و right margin رو برابر 10dp قرار ميديم. (راجب به واحد ها در آينده ان شاءالله بحث ميکنيم)


    http://up.ashiyane.org/images/n02kzjf4pg0g4pkpaa83.png

    خوب حالا نوشته يکمي از کناره ها فاصله گرفته :


    http://up.ashiyane.org/images/namozh4gl25lipb4xnp.png

    راستي آي دي کليدي main_activity رو برابر button و آي دي تکست ويو second_activity رو textView قرار ميديم.

    روي پکيج برنامه توي پوشه src راست کليک مي کنيم و New -> Class رو انتخاب ميکنيم تا اين پنجره باز شه :


    http://up.ashiyane.org/images/sam6cbfeoeb5g8sqm4i.png

    از اين پنجره ميتونيم براي ساخت کلاس استفاده کنيم. داخل قسمت Name بايد اسم کلاسمون رو قرار بديم و جلوي Supreclass کلاسي رو مينويسيم که قراره ازش ارث بري کنيم. براي الان مثلا در قسمت Name مينويسيم SecondActivity و در قسمت Superclass مينويسيم android.app.Activity تا از کلاس Activity ارث بري کنه (يا مينويسيم Activ... و control + space رو ميزنيم تا خودش پيش بيني کنه). با زدن کليد Finish يک همچين کلاسي براي شما ساخته ميشه :

    کد:
    package ir.tutorial.app2_activityandintent;
    
    import android.app.Activity;
    
    public class SecondActivity extends Activity {
    
    }
    علامتي که مشخص ميکنه کجاي متن قراره نوشته بشه رو داخل کلاس قرار بديد و کنترل + اسپيس رو بزنيد تا ليست توابعي رو براي شما بياره. با نوشتن onCreat... تابع onCreate رو پيدا ميکنيم و اون رو override ميکنيم :


    کد:
    package ir.tutorial.app2_activityandintent;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class SecondActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    	}
    }
    اين تابع زماني که اين Activity اجرا ميشه صدا زده ميشه. يک ورودي هم داره که حالا فعلا کاريش نداريم. الان فقط بايد فايل xml رو نسبت بديم به اکتيويتي. براي اين کار از setContentView استفاده ميکنيم و داخلش آي دي scond_activity رو از فايل R.java پيدا ميکنيم و قرار ميديم :

    کد:
    package ir.tutorial.app2_activityandintent;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class SecondActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.second_activity);
    	}
    }
    حالا به فايل MainActivity.java ميريم. مثل دفه ي قبل کليد رو پيدا ميکنيم و OnClickListener بهش اضافه ميکنيم :

    کد:
    package ir.tutorial.app2_activityandintent;
    
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.app.Activity;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		Button button = (Button) findViewById(R.id.button);
    		button.setOnClickListener(new OnClickListener() {	
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub	
    			}
    		});
    	}
    }
    براي اجراي صفحه دوم ما بايد از چيزي به نام Intent استفاده کنيم.
    Intent به صورت کلي براي ارسال پيام براي درخواست چيزي استفاده ميشه. مثلا اگه شما بخايد از توي برنامه صفحه مرورگر گوشي رو باز کنيد يک Intent ميفرستيد که ميخايد براتون مرورگرو باز کنه. يا مثلا براي اجراي يک سرويس هم از Intent ها ممکنه استفاده بشه.
    براي الان ما ميخايم صفحه دوم برنامه رو باز کنيم. براي اينکار بايد يک ايننت بسازيم و بهش کلاسي که داره اين درخواست رو ارسال ميکنه (اکتيويتي حاظر) و کلاسي که قراره اجرا بشه رو بديم (اکتيويتي دوم) . بعد هم با استفاده از تابع startActivity اون intent رو اجرا کنيم.
    پس کد ما به اين شکل در مياد :


    کد:
    package ir.tutorial.app2_activityandintent;
    
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.app.Activity;
    import android.content.Intent;
    
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		Button button = (Button) findViewById(R.id.button);
    		button.setOnClickListener(new OnClickListener() {	
    			@Override
    			public void onClick(View arg0) {
    				Intent intent = new Intent(MainActivity.this, SecondActivity.class);
    				startActivity(intent);
    			}
    		});
    	}
    }
    خوب اگه الان کد برنامه رو اجرا کنيم و روي کليد کليک کنيم برنامه با يک ارور بسته ميشه.


    http://up.ashiyane.org/images/z9e9ihcaz7kja2m1i3rc.png

    دليلش اين هست که اکتيويتي جز مواردي هست که بايد در فايل AndroidManifest.xml معرفي بشه. و اگه اين اتفاق نيفته اندرويد اجازه فعاليت به اون رو نميده. بنابر اين فايل AndroidManifest.xml رو باز ميکنيم. از قسمت پايين صفحه اي که باز ميشه AndroidManifest.xml رو انتخاب ميکنيم تا نسخه xml فايل رو بياره


    http://up.ashiyane.org/images/dz1g66n72krlpvodp1b.png

    فعلا يک همچين کدي رو ميبينيد :

    کد:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="ir.tutorial.app2_activityandintent"
      android:versionCode="1"
      android:versionName="1.0" >
    
      <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
      <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
          android:name="ir.tutorial.app2_activityandintent.MainActivity"
          android:label="@string/app_name" >
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>
      </application>
    
    </manifest>
    بهتره يکم راجبش صحبت کنيم تا براتون مفهوم تر بشه.
    در کل که اين کد ها مشخصات برنامه رو داخلش نگه داشته .

    يک سري اين اطلاعات رو در موقع ساخت پروژه مشخص کرديم. مثل package , minSdkVersion و .... . يا مثلا در قسمت application با خصوصيت icon همون آيکون برنامه مشخص شده.

    يکم پيين تر يک activity معرفي شده که همون اکتيويتي اصلي برنامه هست که به صورت پيشفرض مشخص شده. يک intent-filter هم داخلش هست که مثلا مشخص ميکنه اين فعالين از چه طريقي اجرا بشه.
    حالا زير همين Activity ما اکتيويتي خودمون رو به اين شکل معرفي ميکنيم :


    کد:
    <activity android:name="ir.tutorial.app2_activityandintent.SecondActivity"/>
    خيلي ساده يک تگ activity ساختيم که توش در خصوصيت name آدرس اکتيويتي رو بهش داديم. الان AndroidManifest.xml به اين شکل شده :

    کد:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="ir.tutorial.app2_activityandintent"
      android:versionCode="1"
      android:versionName="1.0" >
    
      <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
      <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
          android:name="ir.tutorial.app2_activityandintent.MainActivity"
          android:label="@string/app_name" >
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>
        
        <activity android:name="ir.tutorial.app2_activityandintent.SecondActivity"/>
        
      </application>
    
    </manifest>
    حالا برنامه رو اجرا کنيد. ميبينيد که با کليک بر روي کليد به فعاليت دوم ميريم. بعد اگه کليد بازگشت گوشي رو بزنيد به اکتيويتي اول بر ميگرديم :


    http://up.ashiyane.org/images/wdsdowjhz61x1tdk9v0t.png


    http://up.ashiyane.org/images/7erj9chazy9iokldroe.png

    خوب فعلا براي اين بخش کافيه. ان شاءالله در ادامه يکم ديگه با Intent ها کار ميکنيم و بعد به سراغ LifeCycle يک اکتيويتي ميريم.
    غفلت از يار, گرفتار شدن هم داد
    از شما دور شدن, زار شدن هم دارد
    هرکه از چشم بي افتاد, محلش ندهند
    عبد آلوده شدن, خوار شدن هم دارد
    عيب از ماست, که هر سال نمي بينيمت چشم بيمار شده, تار شدن هم دارد ...
صفحه 1 از 7 1234567 آخرین
نمایش نتایج: از 1 به 10 از 65

موضوعات مشابه

  1. کتاب آموزش برنامه نويسي C
    توسط MRM_ENG در انجمن برنامه نويسي و اينترفيس
    پاسخ: 0
    آخرين نوشته: 2014/04/22, 22:10
  2. مشکلات نوپاهاي برنامه نويسي اندرويد!
    توسط masoud_m_bf در انجمن Android
    پاسخ: 9
    آخرين نوشته: 2014/04/16, 23:08
  3. پاسخ: 29
    آخرين نوشته: 2014/03/26, 10:08
  4. منتقل شده: آموزش برنامه نويسي ARM از 0 تا 100
    توسط Ali-8701533 در انجمن پروسسورهای ARM
    پاسخ: 0
    آخرين نوشته: 2014/03/25, 22:19
  5. آموزش برنامه نويسي
    توسط abolfazl.69 در انجمن C , C++ , C#
    پاسخ: 1
    آخرين نوشته: 2011/08/10, 08:24

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •