NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3162 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 1 از 1

موضوع: آموزش اندروید و چرخه ی حیاط activity

  1. #1
    تازه وارد
    تاریخ عضویت
    Sep 2015
    نوشته ها
    1
    تشکر
    0
    تشکر شده 2 بار در 1 پست

    پیش فرض آموزش اندروید و چرخه ی حیاط activity

    آموزش اندروید و چرخه ی حیاط activity



    ایجاد پروژه
    پروژه ی جدیدی به نامcom.vogella.android.lifecycle.activityایجاد کنید.
    کلاس زیر را ایجاد کرده تا به وسیله ی آن رخدادهای چرخه ی حیات (life-cycle events) را از روش اخطارها دریافت کنید.
    کد:
    ‎‎package com.vogella.android.lifecycle.activity;‎ ‎ import android.app.Activity;‎ import android.app.Notification;‎ import android.app.NotificationManager;‎ import android.os.Bundle;‎ ‎ ‎ public class TracerActivity extends Activity {‎ ‎ ‎ ‎ @Override ‎ protected void onCreate(Bundle savedInstanceState) {‎ ‎ super.onCreate(savedInstanceState);‎ ‎ notify("onCreate");‎ ‎ }‎ ‎ ‎ ‎ @Override ‎ protected void onPause() {‎ ‎ super.onPause();‎ ‎ notify("onPause");‎ ‎ }‎ ‎ ‎ ‎ @Override ‎ protected void onResume() {‎ ‎ super.onResume();‎ ‎ notify("onResume");‎ ‎ }‎ ‎ ‎ ‎ @Override ‎ protected void onStop() {‎ ‎ super.onStop();‎ ‎ notify("onStop");‎ ‎ }‎ ‎ ‎ ‎ @Override ‎ protected void onDestroy() {‎ ‎ super.onDestroy();‎ ‎ notify("onDestroy");‎ ‎ }‎ ‎ ‎ ‎ @Override ‎ protected void onRestoreInstanceState(Bundle savedInstanceState) {‎ ‎ super.onRestoreInstanceState(savedInstanceState);‎ ‎ notify("onRestoreInstanceState");‎ ‎ }‎ ‎ ‎ ‎ @Override ‎ protected void onSaveInstanceState(Bundle outState) {‎ ‎ super.onSaveInstanceState(outState);‎ ‎ notify("onSaveInstanceState");‎ ‎ }‎ ‎ ‎ ‎ private void notify(String methodName) {‎ ‎ String name = this.getClass().getName();‎ ‎ String[] strings = name.split("\\.");‎ ‎ Notification noti = new Notification.Builder(this)‎ ‎ .setContentTitle(methodName + " " + strings[strings.length - ‎‎1]).setAutoCancel(true)‎ ‎ .setSmallIcon(R.drawable.ic_launcher)‎ ‎ .setContentText(name).build();‎ ‎ NotificationManager notificationManager = ‎ ‎ (NotificationManager) getSystemService(NOTIFICATION_SERVICE);‎ ‎ notificationManager.notify((int) System.currentTimeMillis()‎،‎ noti);‎ ‎ }‎ ‎ ‎ ‎}
    ساختن activityها
    دو activity ایجاد کنید، اولین activity باید دومی را از طریق Intent راه اندازی می کند.
    کد:
    package com.vogella.android.lifecycle.activity;‎
    
            import android.content.Intent;‎
    
            import android.os.Bundle;‎
    
            import android.view.View;‎
    
    public class MainActivity extends TracerActivity {‎
    
            ‎ ‎ @Override
    
            ‎  protected void onCreate(Bundle savedInstanceState) {‎
    
                    ‎    super.onCreate(savedInstanceState);‎
    
                    ‎    setContentView(R.layout.activity_main);‎
    
                    ‎  }‎
    
                    ‎  public void onClick(View view) {‎
    
                    ‎    Intent intent = new Intent(this، SecondActivity.class);‎
    
                    ‎    startActivity(intent);‎
    
                    ‎  }‎
    
                    ‎} ‎
    
            package com.vogella.android.lifecycle.activity;‎
    
            import android.os.Bundle;‎
    
            import android.app.Activity;‎
    
            import android.view.Menu;‎
    
    public class SecondActivity extends TracerActivity {‎
    
            ‎  @Override
    
            ‎  protected void onCreate(Bundle savedInstanceState) {‎
    
                    ‎    super.onCreate(savedInstanceState);‎
    
                    ‎    setContentView(R.layout.activity_second);‎
    
                    ‎  }‎
    
                    ‎}
    هشدار
    از ثبت هر دو intent در مانیفست اندروید اطمینان کسب کنید.
    تست کردن
    برنامه ی کاربردی را راه اندازی کرده و دومین activity را فعال کنید. کلیه ی اختطارها را مرور کرده و سعی کنید دلیل اینکه چرا اتفاقات به این ترتیب رخ می دهند را پیدا کنید.

    در activity دوم روی دکمه ی بازگشت کلیک کنید. بررسی کنید چرا onSaveInstanceState () فراخوانده نشد.
    دکمه ی home را در activity دوم فشار دهید. جهت قرارگیری صفحه ی برنامه ی شبیه ساز خود را با استفاده از میان بر CTRL+F11 تغییر داده و بررسی کنید کدام life-cycle method (متدهای ویژه ی چرخه ی حیات) activity صدا زده می شوند. بررسی کنید آیا فقط activity دوم بازسازی می شود یا این اتفاق برای اولی نیز روی می دهد.
    گزینه یDon't keep activitiesرا در تنظیمات فعال کرده و دوباره بررسی کنید کدام متدها فراخوانده می شود.
    حالت لحظه ای (instance state)
    یک آرایه ی رشته ای (string array) ایجاد کرده سپس با استفاده از آرایه ی نام برده یک Spinnerview به اولین activity خود اضافه کنید. مثال زیر strings.xmlو فایل layout بکاربرده شده توسط اولین activity را فهرست کرده است.
    کد:
    <?xmlversion="1.0"encoding="utf-8"?>
    <resources>
    <stringname="app_name">Lifecycle</string>
    <stringname="action_settings">Settings</string>
    <stringname="hello_world">Hello world!</string>
    <string-arrayname="operating_systems">
    <item>Ubuntu</item>
    <item>Android</item>
    <item>iOS</item>
    </string-array>
    </resources>
    <linearlayoutxmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    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">
    <spinnerandroid:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginright="58dp"
    android:entries="@array/operating_systems"/>
    <buttonandroid:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onclick="onClick"
    android:layout_gravity="bottom"
    android:text="Start new Activity"/>
    </linearlayout>
    اندروید خود به صورت خودکار حالت یک spinner را احیا (restore) می کند. مطمئن شوید انتخاب و گزینش spinner بین تغییرات نحوه ی پیکربندی و بازآغازی activity ها توسط سیستم اندروید ذخیره گشته و احیا می شود.
    حال تساوی آرایه ی ثابت (fixed array assignment) را از layout حذف کرده و آن را از طریق sourcecode به Spinner تخصیص دهید.
    کد:
    // configure the spinner in code‎
    
            Spinner spinner = (Spinner) findViewById(R.id.spinner);‎
    
            String[] values = getResources().getStringArray(R.array.operating_systems);‎
    
            ArrayAdapter<String> adapter = ‎
    
            ‎  new ArrayAdapter<String>(this، android.R.layout.simple_list_item_1‎،‎ values);‎
    
            spinner.setAdapter(adapter);
    تساوی ثابت (fixed assignment) را از فایل layout خود حذف کنید.
    کد:
    <linearlayoutxmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    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">
    <spinnerandroid:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginright="58dp"/>
    <buttonandroid:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onclick="onClick"
    android:layout_gravity="bottom"
    android:text="Start new Activity"/>
    </linearlayout>
    اطمینان کسب کنید موقعیت در spinner هنوز به صورت خودکار احیا (restore) می شود.


    ادامه مطلب رو میتونید از سایت www.tahlildadeh.com مشاهده نمایید.

  2. کاربران : 2 تشکر کرده اند از شما diego برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

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

  1. ویدئو اموزش مونتاژ قطعات smd
    توسط pirozy در انجمن الکترونیک
    پاسخ: 0
    آخرين نوشته: 10-10-2014, 22:30
  2. معرفی کتاب ها و فیلم های آموزش اندروید
    توسط electera در انجمن اندروید-برنامه نویسی و سخت افزار
    پاسخ: 11
    آخرين نوشته: 25-02-2014, 00:49
  3. مشکل فنی در برد آموزشی کویر الکترونیک
    توسط sabli در انجمن LPC series (NXP)
    پاسخ: 3
    آخرين نوشته: 05-09-2013, 18:05
  4. ویدئوهای آموزشی
    توسط adibsp در انجمن LPC series (NXP)
    پاسخ: 4
    آخرين نوشته: 13-08-2013, 07:31

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

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