اطلاعیه

Collapse
No announcement yet.

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

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : آموزش برنامه نویسی اندروید

    اقا این زبانش جاوا هستش چرا حالا در محیط netbeansنه؟

    دیدگاه


      #17
      پاسخ : آموزش برنامه نویسی اندروید

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

      نوشته اصلی توسط نو رسیده
      با سلام و تشکر

      من jdk رو نصب کردم. و SDK Manager.exe رو هم اجرا کردم. صفحه مشکی اومد و رفت ولی خبری از پنجره نشد. به نظرتون مشکل از کجاست؟
      اکلیپس رو اجرا کنید. اگه اجرا شد مشکلی ندارید. توی اکیلیپس از نوار ابزار بالا روی Android SDK Manager کلیک کنید. یا از منو Window -> Android SDK Manager .
      اگه اجرا نشد بگید

      نوشته اصلی توسط بنیامین خلیلی
      اقا این زبانش جاوا هستش چرا حالا در محیط netbeansنه؟
      خوب الان اندروید کامل با اکلیپس هماهنگه. به راحتی خروجی apk میگیرید , لایبری ها خودش اضافه شده , فایل های xml به شکل صفحه نمایش اندروید پیش نمایش داره و میتونید در سایز های مختلف بررسیش کنید و ... . البته من خودم از اکلیپس زیاد خوشم نمیاد. کلا خیلی ها زیاد خوششون نمیاد یکم هم کنده. ولی جدیدا گوگل داره ویرایشگر جدیدی رو کار میکنه به نام Android Studio که بر پایه ویرایش گر Intellij هست که فوق العاده بهتر از اینه. ولی هنوز نسخه نهاییش بیرون نیومده و الان نسخه 0.8 beta هست.
      غفلت از یار, گرفتار شدن هم داد
      از شما دور شدن, زار شدن هم دارد
      هرکه از چشم بی افتاد, محلش ندهند
      عبد آلوده شدن, خوار شدن هم دارد
      عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

      دیدگاه


        #18
        پاسخ : آموزش برنامه نویسی اندروید

        تصاویر رو جای دیگه هم پلود کردم. زیر هر تصویری هم لینک دومش قرار داره :smile:
        غفلت از یار, گرفتار شدن هم داد
        از شما دور شدن, زار شدن هم دارد
        هرکه از چشم بی افتاد, محلش ندهند
        عبد آلوده شدن, خوار شدن هم دارد
        عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

        دیدگاه


          #19
          پاسخ : آموزش برنامه نویسی اندروید

          آقا ببخشین از این سئوالهای پیش دبستانی :cry:!

          از تو اکلیپس هم sdk manager فقط پروگرس بارش میاد و پر میشه و میره. همین.

          از طرف دیگه تو avd هم تارگت رو فقط ورژن 4.4 داره که براش هیچ cpu ای نداره. بنا بر این ویرچوال دیوایس هم نتونستم تعریف کنم.
          کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

          دیدگاه


            #20
            پاسخ : آموزش برنامه نویسی اندروید

            نوشته اصلی توسط نو رسیده
            آقا ببخشین از این سئوالهای پیش دبستانی :cry:!

            از تو اکلیپس هم sdk manager فقط پروگرس بارش میاد و پر میشه و میره. همین.

            از طرف دیگه تو avd هم تارگت رو فقط ورژن 4.4 داره که براش هیچ cpu ای نداره. بنا بر این ویرچوال دیوایس هم نتونستم تعریف کنم.
            نه بابا پیش دسبتانی چیه. این چیزا اولش خیلی پیش میاد بپرسید که بقیه هم راه حل رو پیدا کنند.
            منم یادمه قبلا همینطوری بود برام. SDK باز نمیشد.
            فکر کنم این مشکل SDK رو حل کنه : http://stackoverflow.com/questions/5199811/android-sdk-manager-wont-open
            برا مشکل دوم باید cpu هم داشته باشه. ولی اشکالی نداره. امشب کلا یه سری چیز قراره پلود کنم که کارو با شبیه ساز خیلی راحت تر کنه. cpu رو هم پلود میکنم. ولی شما یه نگاه به این بندازید sdk\system-images\... ببینید توش یه پوشه هست که توش یه پوشه دیگه باید باشه حجم فایلای دخلش هم حدودا 200 مگ باید باشه. اگه باشه وقتی تو AVD Manager نسخه اندروید رو اضافه میکنیم باید cpu هم قابل انتخاب بشه. اگه هم خیلی اینترنت خوبی دارید نسخه کامل رو از همون لینکی که دادم دانلود کنید یا صبر کنید تا اون فایلای خاصو پلود کنم :smile:



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

            دیدگاه


              #21
              پاسخ : آموزش برنامه نویسی اندروید

              5. Life Cycle اکتیویتی ها

              برای ادامه کار خیلی خوب و مهمه که بدونید برنامتون در چه در چه وضعیتی قرار داره. روند اجرا تا بسته شدن یک اکتیویتی رو توی این نمودار میتونید ببینید :


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

              وقتی که یک اکتیویتی اجرا میشه اولین چیزی که اجرا میشه تابع onCreate هست. توی این قسمت هنوز کاربر رابط کاربری رو نمیبینه. شما هم مثلا نمیتونید بفهمید الان یک view (همون آیتم ها مثل کلید و ... ) که قرار بوده تمام صفحه اکتیویتی رو بگیره الان چند پیکسل در چند پیکلسله

              بعد از تابع onStart دیگه کاربر رابط کاربری رو داره. بعد تابع onStart و onResume اجرا میشه. تا اینجا تقریبا شما مطمعنید که همه توابعی که تو نمودار اومده اجرا شده. ولی از اینجا به بعد ممکن اتفاقات متفاوتی بی افته. مثلا کاربر با کلید بازگشت گوشی از برنامه خارج بشه. کلید home رو بزنه یا یک برنامه دیگه اجرا کنه و مثلا حافظه رم کم بیاد. زمانی که قراره اکتیویتی فعلی متوقف شه تابع onPause اجرا میشه ولی از اون به بعد ممکنه برنامه کامل بسته شه یا این که تابع onStop اجرا شده. اگه تابع onStop اجرا شد ممکنه دوباره برنامه همینجا کارش تموم بشه یا اینکه onDestroy اجرا بشه. بعد از اون دیگه برنامه بسته میشه. در صورت عادی مثلا وقتی شما یک دیالگو جدید باز میکنید تابع onPause اجرا میشه ولی زمانی که دیگه کاربر اکتیویتی رو نمیوتونه ببینه onStop اجر میشه. اگه کاربر از onPause به برنامه برگرده تابع onResume اجرا میشه و دوباره میتونه برنامه رو ببینه. ولی اگه از onStop برگرده به برنامه اول onRestart بعد onStart و بعد onResume اجرا میشه.


              توصیه میکنم این جدول رو مطالعه کنید


              http://up.ashiyane.org/images/5jp5xzdhfs32xu9g1qpy.png

              خوب همینقدر فکر کنم برای ادامه کافی باشه. البته خودم احساس میکنم یکم بد توضیح دادم. برای همین اگه خواستید بیشتر مطالعه کنید تو این ضمینه صفحه مربوطه رو به که به pdf تبدیل شده از لینک های زیر میتونید دانلود کنید :

              دانلود فایل PDF صفحه مربوط به Activities
              لینک کمکی


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

              دیدگاه


                #22
                پاسخ : آموزش برنامه نویسی اندروید

                ایجاد شبیه ساز پرسرعت

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

                شاید یکی از مشکلاتی که احتمالا تا الان باهاش مواجه شدید کند بودن شبیه ساز هست که خیلی وقت ها فوق العاده اذیت میکنه. و برای تست یک برنامه ساده شما باید وقت زیادی رو صرف انتظار برای اجرا شدن یک برنامه یا رویداد در برنامه بکنید.

                اما اگه از سیستمی استفاده میکنید که پردازنده intel داره میتونید کاری کنید که سرعت شبیه ساز چندین برابر بشه و تقریبا به اندازه خود گوشی برسه ( البته بازم اون نمیشه ولی خیلی خیلی سریع تر از اینی که هست میشه)

                برای این موضوع intel نرم افزاری رو متشر کرده که میتونید از لینک زیر دانلودش کنید ( البته در انتهای این پست یک بسته کامل هست از چیزایی که نیاز دارید به sdk اضافه کنید. این هم توش هست )

                https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

                غیر از پکیج مربوط به نسخه اندروید به یک System image برای intel روی همون نسخه هم نیاز دارید. یعنی اگه در پوشه platforms داخل sdk , اندروید 18 داشتید , باید توی system images هم اندروید 18 داشته باشید.

                خوب بعد از اینکه همه چیز دانلود شد ( لینک در آخر همین پست هست )
                در پوشه SDK اول به پوشه extras -> intel -> Hardware_Accelerated_Execution_Manager برید و فایل intelhaxm.exe رو اجرا کنید
                مراحل رو جلو برید تا به این صفحه برسید :



                http://up.ashiyane.org/images/9l8wdtkrvhq7275l8vz.png

                اینجا باید مقدار رمی رو که میخاید بشه به شبیه ساز اختصاص داد رو مشخص کنید. خودش در Default Value یک مقدار با توجه به سیستم در نظر میگیره ولی به صورت دستی هم میتونید در قسمت Set Value مقدار مورد نظر رو انتخاب کنید. من 1.5 گیگ اختصاص میدم.

                حالا AVD Manager رو اجرا کنید ( البته پکیج هارو همونطور که در ادامه گفته میشه کپی کرده باشید ) بعد به صورت قبل یک ماشین مجازی رو بسازید. ولی اینبار با انتخاب نسخه ای که system image اونو دانلود کردید ( برای این بسته که پایین هست android 18 ) امکان انتخاب پردازنده اینتل رو در قسمت cpu target ایجاد میکنید. بعد هم یک رم خیلی خوب بهش بدید مثلا 1 گیگ. و در آخر هم به جای Snap Shot از Host GPU استفاده کنید. یک نمونه از شبیه ساز که با intel کار کنه :



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

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

                این هم بسته ای که گفته بودم. کافیه محتویاتش رو توی پوشه SDK کپی کنید همه چیز سر جای خودش میره

                دانلود بسته مورد نیاز برای ساخت شبیه ساز با پردازنده intel
                غفلت از یار, گرفتار شدن هم داد
                از شما دور شدن, زار شدن هم دارد
                هرکه از چشم بی افتاد, محلش ندهند
                عبد آلوده شدن, خوار شدن هم دارد
                عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                دیدگاه


                  #23
                  پاسخ : آموزش برنامه نویسی اندروید

                  6. ذخیره اطلاعات - استفاده از Shared Preference

                  برای ذخیره سازی اطلاعات در اندروید به صورت کلی 3 راه رو میشه نام برد.

                  1. استفاده از Shared Preference
                  2. استفاده از دیتابیس
                  3. استفاده از فایل

                  توی این قسمت قصد داریم با مورد اول کار کنیم . از Shared Preference میتونید برای ذخیره مقادیری از نوع int , long , float , boolean , string استفاده کنید.

                  برای مثال یک فرض کنید میخایم یک برنامه بنویسیم که یک نوشته رو ذخیره کنه و حتی اگه کاربر خارج شد نوشته از بین نره و وقتی نرم افزار دوباره اجرا میشه همون نوشته رو به کاربر نشون بده.

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

                  کد:
                  xmlns:android="http://schemas.android.com/apk/res/android"
                  اینبار میخایم به جای RelativeLayout از LinearLayout استفاده کنیم. LinearLayout کارش اینه که همه View هایی که داخلش قرار میگیره رو به صورت عمودی یا افقی قرار میده. برای مثال ما الآن میخایم یک EditText و یک Button و یک TextView رو زیر هم قرار بدیم. میتونیم برای اینکار از LinearLayout استفاده کنیم.

                  پس یک تگ LinearLayout باز و بسته میکنیم (کلا از control + space توی xml زیاد کمک میشه گرفت)


                  کد:
                  <LinearLayout>
                    
                  </LinearLayout>
                  حالا یه سری خصوصیت باید بهش اضافه کنیم. اولیش همون خصوصیت xmlns:android بود که کپی کردیم اینجا قرارش میدیم :

                  کد:
                  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
                    
                  </LinearLayout>
                  بعد هم باید عمودی افقی بودنش رو مشخص کنیم. از خصوصیت androidrientation ( از این به بعد android: رو نمینویسم برای خصوصیت view ها ) برای اینکار استفاده میکنیم و اون رو برابر vertical قرار میدیم. بعد هم به خصوصیت width و height مقدار match_parent میدیم تا تمام صفحه رو بگیره :

                  کد:
                  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">
                    
                  </LinearLayout>
                  حالا یک EditText اضافه میکنیم.
                  یک خصوصیت آی دی رو میخایم بهش اضافه کنیم. id چون قراره جدید باشه باید از علامت + استفاده کنیم تا یک id جدید در فایل R.java بسازه :


                  کد:
                  android:id="@+id/editText"
                  یه نکته هم اینکه وقتی قراره با id های موجود در R.java کار کنیم اولش یک @ اضافه میکنیم. حتی وقتی یک عکس وارد پروژه شد یک ای دی به اون نسبت میده در فایل R.java ولی در کلاس drawable قرار میده. اما آی دی view ها در همون کلاس id در فایل R.java قرار میگرند. ( متوجه نشدید طوری نیست :smile: )

                  بعد هم طول و عرضش رو مشخص میکنیم. طولش رو میخایم کل سطر رو بگیره پس match_parent قرار میدیم ولی برای ارتفاعش از wrap_content استفاده میکنیم تا فقط به اندازه همون خط که توش نوشته میشه فضا بگیره. یعنی به اندازه محتوای داخلش بشه


                  کد:
                  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">
                    
                    	<EditText
                    	   android:id="@+id/editText"
                    	   android:layout_width="match_parent"
                    	   android:layout_height="wrap_content"/>
                    	
                  </LinearLayout>
                  حالا یک کلید اضافه میکنیم. آی دی button رو بهش میدیم و طول و عرضش رو هم مثل editText قرا میدیم. برای متن روی کلید هم از text استفاده میکنیم.

                  کد:
                  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">
                    
                    	<EditText
                    	   android:id="@+id/editText"
                    	   android:layout_width="match_parent"
                    	   android:layout_height="wrap_content"/>
                    	
                    	<Button 
                    	  android:id="@+id/button"
                    	  android:layout_width="match_parent"
                    	  android:layout_height="wrap_content"
                    	  android:text="ذخیره"/>
                    	
                  </LinearLayout>
                  و در نهایت یک TextView :

                  کد:
                  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">
                    
                    	<EditText
                    	   android:id="@+id/editText"
                    	   android:layout_width="match_parent"
                    	   android:layout_height="wrap_content"/>
                    	
                    	<Button 
                    	  android:id="@+id/button"
                    	  android:layout_width="match_parent"
                    	  android:layout_height="wrap_content"
                    	  android:text="ذخیره"/>
                    	
                    	<TextView
                    	  android:id="@+id/textView"
                    	  android:layout_width="match_parent"
                    	  android:layout_height="wrap_content"
                    	  android:text="متنی موجود نیست"/>
                    	
                  </LinearLayout>
                  حالا به بخش گرافیکی فایل xml میریم تا نتیجه کار رو ببینیم :


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

                  همونطور که میبینید صفحه از روی کد xml که نوشتیم ساخته شده و view ها زیر هم قرار گرفتند. این کار ها با خودش ویرایشگر گرافیکی هم قابل انجام هست.
                  حالا به سراغ کد نویسی میریم.

                  اول هر سه view رو پیدا میکنیم.

                  بعد یک OnClickListener برای کلید قرار میدیم تا با کلید شدن اطالعات رو ذخیره کنیم.
                  برتی کار با اطلاعات ذحیره شده از SharedPreferences و SharedPreferences.Editor استفاده میکنیم.
                  ابتدا باید SharedPreferences مربوطه رو باز کنیم :


                  کد:
                  sharedPreferences = getSharedPreferences("AppPref", 0);
                  همونطور که دیدید اینکار با تابع getSharedPreferences انجام میگیره. این تابع یک ورودی میگیره که نام SharedPreference هست که اگه باشه اونو بر میگردونه اگه نباشه میسازه. به صورت اختیاری اونو یه چیز قرار بدید. فقط باید در جاهای دیگه ازش استفاده کنید. من AppPref قرار دادم. ورودی دوم رو هم کلا صفر بزارید.

                  برای خوندن SharedPreference همین کار کافیه ولی برای نوشتن باید از SharedPreferences.Editor استفاده کنیم. برای گرفتم SharedPreferences.Editor به این شکل عمل میکنیم


                  کد:
                  SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
                  حالا با استفاده از putString و ... مقادیر مورد نیاز رو در SharedPreference قرار میدیم. به عنوان مثال الان میخایم متن editText رو ذخیره کنیم :

                  کد:
                  sharedPreferencesEditor.putString("userText", editText.getText().toString());
                  همونطور که میبینید تابع putString دو تا ورودی گرفته. اولی نام مقداری هست که میخایم ذخیره کنیم. بعدا با این نام این مقدار رو بازیابی میکنیم. دومی هم مقداری هست که میخایم ذخیره کنیم که الان رشته ای که کاربر نوشته رو میخایم ذخیره کنیم.

                  و در نهایت با صدا زدن تابع commit عملیات ذخیره رو کامل میکنیم. کد تا اینجا :


                  کد:
                  package ir.tutorial.app4_savedata_sharedpreference;
                  
                  import ir.tutorial.app4_savedata_sharedpreference.R;
                  
                  import android.os.Bundle;
                  import android.app.Activity;
                  import android.content.SharedPreferences;
                  import android.view.Menu;
                  import android.view.View;
                  import android.view.View.OnClickListener;
                  import android.widget.Button;
                  import android.widget.EditText;
                  import android.widget.TextView;
                  
                  public class MainActivity extends Activity {
                  
                  	EditText editText;
                  	Button button;
                  	TextView textView;
                  	
                  	@Override
                  	protected void onCreate(Bundle savedInstanceState) {
                  		super.onCreate(savedInstanceState);
                  		setContentView(R.layout.activity_main);
                  	
                  		editText = (EditText)findViewById(R.id.editText);
                  		button = (Button)findViewById(R.id.button);
                  		textView = (TextView)findViewById(R.id.textView);
                  		
                  		button.setOnClickListener(new OnClickListener() {
                  			
                  			@Override
                  			public void onClick(View arg0) {
                  				SharedPreferences sharedPreferences;
                  				sharedPreferences = getSharedPreferences("AppPref", 0);
                  				SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
                  				sharedPreferencesEditor.putString("userText", editText.getText().toString());
                  				sharedPreferencesEditor.commit();
                  			}
                  		});
                  		
                  	}
                  }
                  حالا یک تابع مینویسیم که کار با صدا زدنش متن textView از داخل SharedPreference بازیابی بشه نمایش داده بشه.
                  این تابع رو هم بعد از ذخیره کردن اطلاعات صدا میزنیم هم در ابتدای برنامه تا متن textView به روز بشه. در این تابع مثل دفه قبل SharedPreference رو میگیریم. بعد با استفاده از getString متن رو پیدا میکنیم :


                  کد:
                  	void UpdateTextView()
                  	{
                  		SharedPreferences sharedPreferences = getSharedPreferences("AppPref", 0);
                  		String text = null;
                  		text = sharedPreferences.getString("userText", null);
                  		if(text != null)
                  		{
                  			textView.setText(text);
                  		}
                  	}
                  تابع getString دو تا ورودی میگیره. اولی نام مقداری هست که ذخیره کردیم و دومی مقدار دیفالت در صورت نبودن اطلاعاتی با اون نام (البته من احساس میکنم قسمت دوم زیاد درست کار نمیکنه :read: یعنی اگه چیزی نباشه باز هم null بر میگردونه حتی اگه شما یک رشته رو به عنوان ورودی دوم داده باشید. برای همین من اون رو null قرار میدم)

                  بعد چک میکنیم اگه چیزی بود اون رو در editText نشون بده.
                  حالا برنامه رو کامل میکنیم :


                  کد:
                  package ir.tutorial.app4_savedata_sharedpreference;
                  
                  import ir.tutorial.app4_savedata_sharedpreference.R;
                  
                  import android.os.Bundle;
                  import android.app.Activity;
                  import android.content.SharedPreferences;
                  import android.view.View;
                  import android.view.View.OnClickListener;
                  import android.widget.Button;
                  import android.widget.EditText;
                  import android.widget.TextView;
                  
                  public class MainActivity extends Activity {
                  
                  	EditText editText;
                  	Button button;
                  	TextView textView;
                  	
                  	@Override
                  	protected void onCreate(Bundle savedInstanceState) {
                  		super.onCreate(savedInstanceState);
                  		setContentView(R.layout.activity_main);
                  	
                  		editText = (EditText)findViewById(R.id.editText);
                  		button = (Button)findViewById(R.id.button);
                  		textView = (TextView)findViewById(R.id.textView);
                  		
                  		UpdateTextView();
                  		
                  		button.setOnClickListener(new OnClickListener() {
                  			
                  			@Override
                  			public void onClick(View arg0) {
                  				SharedPreferences sharedPreferences;
                  				sharedPreferences = getSharedPreferences("AppPref", 0);
                  				SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
                  				sharedPreferencesEditor.putString("userText", editText.getText().toString());
                  				sharedPreferencesEditor.commit();
                  				UpdateTextView();
                  			}
                  		});
                  	}
                  	
                  	void UpdateTextView()
                  	{
                  		SharedPreferences sharedPreferences = getSharedPreferences("AppPref", 0);
                  		String text = null;
                  		text = sharedPreferences.getString("userText", null);
                  		if(text != null)
                  		{
                  			textView.setText(text);
                  		}
                  	}
                  }
                  حالا میریم تا برنامه رو تست کنیم :


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


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

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

                  دیدگاه


                    #24
                    پاسخ : آموزش برنامه نویسی اندروید

                    7. استفاده از ListView

                    در این بخش به سراغ یکی از View هایل خیلی مهم توی اندروید میریم. البته فقط یه استفاده ساده ازش رو میبینیم به چه شکل هست. این View در خیلی جاها کاربرد داره. کارش اینه که وقتی ما قرار باشه سطر هایی پشت سر هم و مثل هم داشته باشیم از این ویو استفاده میکنیم. مثلا دفترچه تلفن رو نگاه کنید. تمام سطر ها فقط در محتوا متفاوت هستند ولی اینکه نام کجا باشه , شماره تلفن کجا باشه و ... با هم یکسان هستند. در این موارد از ListView استفاده کنیم.

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

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

                    یه پروژه جدید میسازیم بعد به فایل XML میریم و یک ListView از Palette -> Composite به داخل صفحه میکشیم. به صورت پیشفرض الان یه سری آیتم رو نمایش میده (البته اگه الان برنامه رو اجرا کنید چیزی نمایش نمیده)
                    آی دیش رو هم برابر listView قرار میدیم :



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

                    حالا به فایل جاوا میریم. اول یه آرایه از چیزایی که میخایم نمایش بدیم رو میسازیم. مثلا یک آرایه از نام تعدادی کتاب :

                    کد:
                    String[] books = {"پا به پای باران", " عباس دست طلا", "من زنده ام",
                    						 "دا", "ارمیا", "پایی که جا ماند", "نوید امن و امان",
                    						 "آزادی معنوی"};
                    بعد یک ArrayAdapter که باید به listView بدیم. ArrayAdapter در یکی حالات سه تا ورودی برای سازنده میگیره. اولی Context هست که همون MainActivity.this رو بهش میدیم. دومی شیوه چیدن محتوا هست که باید id یک فایل xml رو بدیم. از فایل موجود در خود اندروید استفاده میکنیم. آی دی هایی که توی خود اندروید هست به جای R.java در android.R.java قرار داره. ما به ورودی دوم android.R.layout.simple_list_item_1 رو میدیم. ورودی سوم هم لیست چیزی هست که قراره نشون بدیم. بعد هم باید به لیست ویو که در اکتیویتی قرار دادیم این Adapter رو با استفاده از تابع setAdapter نسبت بدیم. کل کد به این شکل میشه :

                    کد:
                    package ir.tutorial.app5_listview;
                    
                    import android.os.Bundle;
                    import android.app.Activity;
                    import android.view.Menu;
                    import android.widget.ArrayAdapter;
                    import android.widget.ListView;
                    
                    public class MainActivity extends Activity {
                    
                    	@Override
                    	protected void onCreate(Bundle savedInstanceState) {
                    		super.onCreate(savedInstanceState);
                    		setContentView(R.layout.activity_main);
                    		String[] books = {"پا به پای باران", " عباس دست طلا", "من زنده ام",
                    						 "دا", "ارمیا", "پایی که جا ماند", "نوید امن و امان",
                    						 "آزادی معنوی"};
                    		ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>
                    		(MainActivity.this, android.R.layout.simple_list_item_1,books);
                    		ListView listView = (ListView)findViewById(R.id.listView);
                    		listView.setAdapter(arrayAdapter);
                    		
                    	}
                    }
                    حالا برنامه رو تست میکنیم تا نتیجه رو ببینیم :


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

                    خوب برای شروع با لیست ها برای این بخش کافیه.ولی در قسمت های بعدی ان شاءالله بیشتر با لیست ها کار میکنیم.

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

                    دیدگاه


                      #25
                      پاسخ : آموزش برنامه نویسی اندروید

                      با تشکر از آقای محمد علی.

                      اون مشکل اجرا نشدن SDK MANAGER حل شد. چون دیدم مشکل شایعی هست و تو سایت استک هم خیلی ها همین رو مطرح کرده بودن گفتم بذارم تا بقیه هم بدونن. مشکل من از مسیر نصب بود که ظاهرا طول رشته ش زیاد بود. وقتی پوشه رو به روت نزدیکتر کردم، مشکل برطرف شد. البته طبق پاسخهایی که تو استک داده بودن، یه کارهای دیگه ای هم کردم، ولی به نظرم با اینکار قضیه حل شد.
                      کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                      دیدگاه


                        #26
                        پاسخ : آموزش برنامه نویسی اندروید

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

                        اون مشکل اجرا نشدن SDK MANAGER حل شد. چون دیدم مشکل شایعی هست و تو سایت استک هم خیلی ها همین رو مطرح کرده بودن گفتم بذارم تا بقیه هم بدونن. مشکل من از مسیر نصب بود که ظاهرا طول رشته ش زیاد بود. وقتی پوشه رو به روت نزدیکتر کردم، مشکل برطرف شد. البته طبق پاسخهایی که تو استک داده بودن، یه کارهای دیگه ای هم کردم، ولی به نظرم با اینکار قضیه حل شد.
                        خواهش میکنم.
                        توی http://stackoverflow.com/ خیلی از سوالای مربوط به برنامه نویسی که پیش میاد قبلا پرسیده شده. خیلی کمک میکنه برای سرعت کار.
                        غفلت از یار, گرفتار شدن هم داد
                        از شما دور شدن, زار شدن هم دارد
                        هرکه از چشم بی افتاد, محلش ندهند
                        عبد آلوده شدن, خوار شدن هم دارد
                        عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                        دیدگاه


                          #27
                          پاسخ : آموزش برنامه نویسی اندروید

                          8. اختصاصی سازی ListView

                          در بخش قبلی یه لیست خیلی ساده با ListView ساختیم. اما کاربرد ListView بیشتر از اینچیزاست.
                          برای نمونه ما میخایم یک لیست بسازیم که تصویر و نام و قیمت یک سری از محصولات سایت رو نشون بده. برای شروع چند تا تصویر از محولات فروشگاه سایت ذخیره کردم. اسمای عکسارو هم تغیر دادم تا با مفهوم شه. حالا تصاویر رو به داخل پوشه drawable-hdpi میکشیم و رها میکنیم



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

                          حالا به سراغ فایل main-activity.xml میریم و مثل قبل یک ListView درونش قرار میدیم. آی دیشو هم مثلا listView قرار میدیم.
                          بعد یک فایل xml دیگه میسازیم. قراره از روی این فایل سطر های لیست ساخته بشه. یعنی یک لیست با سطر هایی با چینش این فایل داشته باشیم. مثلا اسمش رو list_item_layout.xml قرار میدیم. و از RelativeLayout استفاده میکنیم. حالا در این فایل از قسمت Palette -> Image & Media یک ImageView به داخل صفحه میکشیم. این ویو برای نمایش تصویر به کار میره. وقتی اونو به درون صفحه بکشید یک پنجره باز میشه که از شما id تصویری رو میخاد تا توش نمایش بده. یک تصویر رو فعلا انتخاب کنید. مهم نیست چون تصویر اصلی رو با کد مشخص میکنیم. اون رو در بالا و سمت راست صفحه قرار میدیم.
                          به سمت راست ویرایشگر و قسمت Properties میریم.
                          در حالی که ImageView درون صفحه در حال انتخاب قرار داره از این قسمت به Layout Parameters -> Width میریم. میخایم طول و عرض صفحه رو به صورت ثابت تعریف کنیم. فکر کنم 70dp مناسب باشه. پس Width و Height رو برابر 70dp قرار میدیم. میخایم از سمت چپش هم یکم فاصله ایجاد کنیم تا نوشته هایی که قراره اضافه بشه بهش نچسبه و ظاهر بهتری پیدا کنه. بنابر این به قسمت Layout Parameters -> Margins میریم و Left رو برابر 2dp قرار میدیم.
                          بعد هم میخایم مشخص کنیم که تصویر رو تغیر اندازه بده تا به اندازه خود ImageView بشه. بنابر این یکم پایین تر از Layout Parameters به ImageView -> Scale Type میریم و اون رو روی fitXY قرار میدیم.

                          بعد به بالای قسمت Properties یعنی قسمت Outline میریم و RelativeLayout رو انتخاب میکنیم.میخوایم یک فاصله درون این RelativeLayout ایجاد کنیم تا آیتم ها به دیواره ها نچسبند و یکمی فاصله داشته باشند. بنابر این همینطور که RelativeLayout در حال انتخاب هست به Properties -> Layout Parameters -> Margins میریم و Margin رو برابر 4dp قرار میدیم تا از هر طرف 4dp فاصله ایجاد بشه.

                          طول و عرض این Relative Layout رو هم باید تغیر بدیم. چون قراره فقط یکی از آیتم های لیست باشه. پس به Properties -> Layout Parameters میریم و Width رو برابر match_parent قرار میدیم تا کل عرض صفحه گرفته بشه ولی ارتفاع اون رو برابر wrap_content قرار میدیم تا فقط به اندازه محتویات درونش باشه.

                          حالا یک Medium Text به بالا و سمت چپ تصویر و یک Small Text زیر Medium Text قرار میدیم. در اولی نام محصول و در دومی قیمتش رو مینویسیم.
                          برای این دوتا TextView از قسمت Properties -> TextView -> Gravity رو روی right قرار میدیم تا متن راست به چپ نوشته بشه.
                          آیدی ImageView رو listItemImageView و آیدی TextView مربوط به نام مخصول رو listItemNameTextView و دیگری رو listItemPriceTextView قرار میدیم.



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

                          برای اینکه لیست رو اختصاصی کنیم باید یک کلاس برای Adapter اون بنویسیم. پس یک کلاس جدید میسازیم به نام SpecialListViewAdapter که از android.widget.BaseAdapter ارث بری کنه. وقتی کلاس رو مسازید به همچین کدی روبرو میشید :

                          کد:
                          package ir.tutorial.app6_speciallistview;
                          
                          import android.view.View;
                          import android.view.ViewGroup;
                          import android.widget.BaseAdapter;
                          
                          public class SpecialListViewAdapter extends BaseAdapter {
                          	
                          	@Override
                          	public int getCount() {
                          		
                          		return 0;
                          	}
                          
                          	@Override
                          	public Object getItem(int arg0) {
                          		// TODO Auto-generated method stub
                          		return null;
                          	}
                          
                          	@Override
                          	public long getItemId(int arg0) {
                          		// TODO Auto-generated method stub
                          		return 0;
                          	}
                          
                          	@Override
                          	public View getView(int arg0, View arg1, ViewGroup arg2) {
                          		// TODO Auto-generated method stub
                          		return null;
                          	}
                          
                          }
                          چون در پنجره ای که خود اکیلیپس برای ساخت کلاس باز میکنه مشخص کردیم از چه کلاسی ارث بری کنه توابعی که باید حتما باید تعریف بشه رو خودش ساخته.

                          getCount : مشخص میکنه که این لیست چند تا آیتم داره
                          getItem : شماره آیدی به عنوان ورودی دریافت میشه و باید آتم مورد نظر بر گردونده شه ( میشه مثلا نام محصول یا قیمتش یا ... رو برگردونید )
                          getView : توی این تابع باید سطر ساخته بشه.

                          اون یکی رو هم فعلا کاری نداریم.

                          آیدی تصاویر و نام و قیمت رو در یک آرایه توی کلاس قرار میدیم :


                          کد:
                          	String[] names = {"Beaglebone Black BB-Black", 
                          					 "ماژول بلوتوث HC-05",
                          					 "برد آموزشی حرفه ای ",
                          					 "ماژول LCD 3.2 تمام رنگی",
                          					 "ماژول شبکه ENC28J60",
                          					 "ماژول ریدر RFID 13.56MHZ",
                          					 "ماژول USB HOST"};
                          	int[] prices = {3300000,200000,2350000,320000,180000,430000,380000};
                          	int[] imageIDs = {R.drawable.beaglebone,
                          					 R.drawable.bluetooth,
                          					 R.drawable.board,
                          					 R.drawable.lcd,
                          					 R.drawable.net,
                          					 R.drawable.rfid,
                          					 R.drawable.usb_host};
                          توی getCount اندازه یکی از آرایه هارو بر میگردونیم.

                          کد:
                          @Override
                          	public int getCount() {
                          		return imageIDs.length;
                          	}
                          حالا به سراغ getView میریم.

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


                          کد:
                          @Override
                          	public View getView(int position, View view, ViewGroup arg2) {
                          		return null;
                          	}
                          این position از صفر تا مقداری که GetCount برگردونده منهای میتونه متغیر باشه.

                          view هم همون سطر هست که باید برگرده.
                          قبل از ادامه کار یک کلاس به نام ViewHolder توی خود همین کلاس (از قابلیت های جاوا اینه که میشه تو یک کلاس یا حتا یک تابع یک کلاس تعریف کرد) تعریف میکنیم. که توش سه تا شی مثل list_item_layout.xml داشته باشه. این کار برای بهبود سرعت انجام میشه و میشه به این شکل هم انجام نشه :


                          کد:
                          	class ViewHolder
                          	{
                          		ImageView imageView;
                          		TextView nameTextView;
                          		TextView priceTextView;
                          	}
                          بعد هم یک شی عمومی از نوع Context به کلاس SpecialListAdapter اضافه میکنیم و در سازنده اون رو به عنوان ورودی میگیریم :

                          کد:
                          	Context context;
                          	
                          	public SpecialListViewAdapter(Context context) {
                          		this.context = context;
                          	}
                          حالا بر میگردیم به همون تابع getView. اینبار اول کد رو مینویسم بعد توضیح میدم :

                          کد:
                          	@Override
                          	public View getView(int position, View view, ViewGroup arg2) {
                          		View convertedView = view;
                          		ViewHolder viewHolder;
                          		
                          		if(convertedView == null)
                          		{
                          			LayoutInflater layoutInflater;
                          			RelativeLayout relativeLayout;
                          			viewHolder = new ViewHolder();
                          			
                          			layoutInflater =
                          					(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                          			convertedView = layoutInflater.inflate(R.layout.list_item_layout, null);
                          			relativeLayout = (RelativeLayout)convertedView;
                          			viewHolder.imageView =
                          					(ImageView)relativeLayout.findViewById(R.id.listItemImageView);
                          			viewHolder.nameTextView =
                          					(TextView)relativeLayout.findViewById(R.id.listItemNameTextView);
                          			viewHolder.priceTextView =
                          					(TextView)relativeLayout.findViewById(R.id.listItemPriceTextView);
                          			convertedView.setTag(viewHolder);
                          		}
                          		
                          		viewHolder = (ViewHolder)convertedView.getTag();
                          		viewHolder.imageView.setImageResource(imageIDs[position]);
                          		viewHolder.nameTextView.setText(names[position]);
                          		viewHolder.priceTextView.setText(prices[position] + " ریال");
                          		
                          		return convertedView;
                          	}
                          همونطور که میبینید اول یک View ساختیم و view رو که ورودی تابع هست بهش دادیم. یک ViewHoder هم ساختیم که در ادامه ازش استفاده میکنیم دفعه ی اول این convertedView برابر null هست. برای همین باید اول شکل سطر رو مشخص کنیم. بنابر این اگر برابر null بود اول یک LayoutInflater میسازیم. LayoutInflater کارش این هست که یک view بر اساس یک فایل xml بسازه. یک شی از RelativeLayout هم ساختیم تا RelativeLayout اصلی رو که بقیه ویو ها توش هست درونش قرار بدیم.
                          در دو خط بعدی layoutInflater رو به شکلی که میبینید دریافت میکنیم.
                          بعد هم با استفاده از تابع inflate سطر مورد نظر رو میسازیم. دو تا ورودی داره. وردوی اول فایل xml سطر و دومی رو هم میتونیم null قرار بدیم.

                          الان در اصل convertedView یک RelativeLayout هست. ولی چون خود RelativeLayout از View به ارث میبره الان این امکان فراهم شده که در شی از جنس view قرار بگیره. ولی باید اونو تبدیل کنیم به RelativeLayout که در خط بعد اینکارو انجام میدیم.
                          حالا درون viewHolder اون View های داخل فایل xml رو قرار میدیم. بعد با استفاده از setTag میدیم به convertedView . تابه setTag هرچیزی رو میتونه بگیره. الان ViewHolder بهش میدیم تا در ادامه و دفعات بعد که این تابع صدا زده میشه بتونیم با getTag اون رو دریافت کنیم و از ImageView و TextView های داخلی ViewHolder که قبلا پیدا شده استفاده کنیم. در خط بعدی این اتفاق افتاده و از getTag استفاده میکنیم. اینجا دیگه convertedView برابر null نیست. چون یا در شرط قبلی ساخته شده یا وقتی تابع صدا زده شده در دفعات بعدی دیگه قبلا ساخته شده.

                          بعد فقط تصویر و ... اون سطر رو مشخص میکنیم و سطر رو بر میگردونیم.

                          این کد کامل Adapter :


                          کد:
                          package ir.tutorial.app6_speciallistview;
                          
                          import android.content.Context;
                          import android.view.LayoutInflater;
                          import android.view.View;
                          import android.view.ViewGroup;
                          import android.widget.BaseAdapter;
                          import android.widget.ImageView;
                          import android.widget.RelativeLayout;
                          import android.widget.TextView;
                          
                          public class SpecialListViewAdapter extends BaseAdapter {
                          	
                          	String[] names = {"Beaglebone Black BB-Black", 
                          					 "ماژول بلوتوث HC-05",
                          					 "برد آموزشی حرفه ای ",
                          					 "ماژول LCD 3.2 تمام رنگی",
                          					 "ماژول شبکه ENC28J60",
                          					 "ماژول ریدر RFID 13.56MHZ",
                          					 "ماژول USB HOST"};
                          	int[] prices = {3300000,200000,2350000,320000,180000,430000,380000};
                          	int[] imageIDs = {R.drawable.beaglebone,
                          					 R.drawable.bluetooth,
                          					 R.drawable.board,
                          					 R.drawable.lcd,
                          					 R.drawable.net,
                          					 R.drawable.rfid,
                          					 R.drawable.usb_host};
                          	
                          	Context context;
                          	
                          	public SpecialListViewAdapter(Context context) {
                          		this.context = context;
                          	}
                          	
                          	@Override
                          	public int getCount() {
                          		return imageIDs.length;
                          	}
                          
                          	@Override
                          	public Object getItem(int arg0) {
                          		
                          		return null;
                          	}
                          
                          	@Override
                          	public long getItemId(int arg0) {
                          		return 0;
                          	}
                          
                          	@Override
                          	public View getView(int position, View view, ViewGroup arg2) {
                          		View convertedView = view;
                          		ViewHolder viewHolder;
                          		
                          		if(convertedView == null)
                          		{
                          			LayoutInflater layoutInflater;
                          			RelativeLayout relativeLayout;
                          			viewHolder = new ViewHolder();
                          			
                          			layoutInflater =
                          					(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                          			convertedView = layoutInflater.inflate(R.layout.list_item_layout, null);
                          			relativeLayout = (RelativeLayout)convertedView;
                          			viewHolder.imageView =
                          					(ImageView)relativeLayout.findViewById(R.id.listItemImageView);
                          			viewHolder.nameTextView =
                          					(TextView)relativeLayout.findViewById(R.id.listItemNameTextView);
                          			viewHolder.priceTextView =
                          					(TextView)relativeLayout.findViewById(R.id.listItemPriceTextView);
                          			convertedView.setTag(viewHolder);
                          		}
                          		
                          		viewHolder = (ViewHolder)convertedView.getTag();
                          		viewHolder.imageView.setImageResource(imageIDs[position]);
                          		viewHolder.nameTextView.setText(names[position]);
                          		viewHolder.priceTextView.setText(prices[position] + " ریال");
                          		
                          		return convertedView;
                          	}
                          	
                          	class ViewHolder
                          	{
                          		ImageView imageView;
                          		TextView nameTextView;
                          		TextView priceTextView;
                          	}
                          
                          }
                          حالا به MainActivity میریم و این آداپتور رو میسازیم و به لیست نسبتش میدیم :

                          کد:
                          package ir.tutorial.app6_speciallistview;
                          
                          import android.os.Bundle;
                          import android.widget.ListView;
                          import android.app.Activity;
                          
                          public class MainActivity extends Activity {
                          	
                          	ListView listView;
                          	
                          	@Override
                          	protected void onCreate(Bundle savedInstanceState) {
                          		super.onCreate(savedInstanceState);
                          		setContentView(R.layout.activity_main);
                          		
                          		listView = (ListView)findViewById(R.id.listView);
                          		SpecialListViewAdapter specialListViewAdapter =
                          				new SpecialListViewAdapter(MainActivity.this);
                          		listView.setAdapter(specialListViewAdapter);
                          	}
                          
                          }
                          حالا برنامه رو اجرا میکنیم تا نتیجه رو ببینیم :


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

                          خوب برای این قسمت تقریبا کافیه. ان شاءالله در قسمت های بعدی در غالب پروژه های دیگه بیشتر روی لیست ها کار میکنیم.
                          غفلت از یار, گرفتار شدن هم داد
                          از شما دور شدن, زار شدن هم دارد
                          هرکه از چشم بی افتاد, محلش ندهند
                          عبد آلوده شدن, خوار شدن هم دارد
                          عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                          دیدگاه


                            #28
                            پاسخ : آموزش برنامه نویسی اندروید

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

                            اگر امکانش هست یک پروژه رو تعریف کنید و از صفر تا صد اون رو برنامه نویسی کنید.
                            مثلا : یک اپ اندروییدی که بتونه از طریق وای فای/بلوتوث یک وسیله رو کنترل کنه.

                            البته این یک مثال بود و شما با توجه به تجربه و وقت خودتون پروژه ای مناسب تعریف کنید تا ما هم استفاده کنیم.
                            بازم متشکر.

                            دیدگاه


                              #29
                              پاسخ : آموزش برنامه نویسی اندروید

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

                              اگر امکانش هست یک پروژه رو تعریف کنید و از صفر تا صد اون رو برنامه نویسی کنید.
                              مثلا : یک اپ اندروییدی که بتونه از طریق وای فای/بلوتوث یک وسیله رو کنترل کنه.

                              البته این یک مثال بود و شما با توجه به تجربه و وقت خودتون پروژه ای مناسب تعریف کنید تا ما هم استفاده کنیم.
                              بازم متشکر.
                              خواهش میکنم. قابلی نداره.

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

                              دیدگاه


                                #30
                                پاسخ : آموزش برنامه نویسی اندروید

                                تست برنامه روی دستگاه واقعی

                                بهترین چیز برای تست برنامه هایی که مینویسیم گوشی یا ... واقعی هست. ما میتونم با خود Eclipse سریع برنامه رو روی گوشی تست کنیم. برای انکار اول باید درایور گوشی رو نصب کنید. اگه نرم افزار های داخل CD گوشی رو نصب کنید به احتمال زیاد درایور مربوطه هم نصب میشه. اگه هم سی دی رو ندارید توی اینترنت دنبال USB Driver گوشیتون بگردید.

                                بعد هم باید به سراغ تنظیمات گوشی برید و USB Debug رو فعال کنید. این گزینه با توجه به نسخه سیستم عامل گوشی جاها مختلفی میونه باشه. مثلا :



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


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

                                یا مثلا من گوشیم اندروید 2.3.6 داره و زبانش رو فارسی هست توی تنظیمات -> برنامه های -> پیشرفت -> اشکال دایی USB قرار داره .

                                حالا گوشی رو با کابل USB وصل کنید به سیستم. بعد همون پروژه رو مثل وقتی برای شبیه ساز اجرا میکردید اجرا کنید. اینبار یک لیست میاد که دستگاه ها و شبیه ساز هایی که میشه برنامه رو توش تست کرد نشون میده. حالا گوشیتون رو پیدا کنید و روش دوبار کلیک کنید یا ok رو بزنید



                                http://up.ashiyane.org/images/rigsplsgnhnirbxo6w.png
                                غفلت از یار, گرفتار شدن هم داد
                                از شما دور شدن, زار شدن هم دارد
                                هرکه از چشم بی افتاد, محلش ندهند
                                عبد آلوده شدن, خوار شدن هم دارد
                                عیب از ماست, که هر سال نمی بینیمت چشم بیمار شده, تار شدن هم دارد ...

                                دیدگاه

                                لطفا صبر کنید...
                                X