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

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

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

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

محتویات این وبلاگ با هدف آموزش اندروید در دوره درسی "برنامه نویسی موبایل" در دانشگاه صنعتی قم توسط اینجانب گردآوری شده است.
تعداد زیادی از مطالب ترجمه شده در این وبلاگ توسط دانشجویان دانشگاه صنعتی قم به عنوان پروژه های این درس ترجمه شده است.
در صورتی که تصمیم به تماس با من دارید، می توانید از طریق آدرس ایمیل qut دات android در جی میل دات کام با من تماس بگیرید.
-------------------
اگر بتوانم به شما کمکی در زمینه برنامه نویسی اندروید بکنم، خوشحال خواهم شد با این حال اگر پرسشی را ارسال کردید و بنده نیز به دلیل مشکلات و مشغله نتوانستم پاسخگو باشم، پوزش بنده را پیشاپیش پذیرا باشید.
-------------------
چون افراد زیادی از من درخواست می کنند تا برنامه نویسان اندروید به خصوص در شهر قم را به آنها معرفی کنند، اگر تمایل دارید رزومه و یا مشخصات خود را برایم ارسال کنید تا در صورت وجود درخواستهایی از این دست به شما اطلاع دهم.
از نظر من محدویتی به شهر قم وجود ندارد، لذا اگر برنامه نویس اندروید در شهرهایی دیگر هستید و یا به دنبال نیروی برنامه نویس اندروید هستید با من در تماس باشید، شاید بتوانم در این زمینه به شما کمکی بکنم :)
ناگفته نماند از آنجایی که در فضای مجازی من شناختی از هیچ شخص یا شرکتی ندارم، اگر شخصی به دنبال نیروی کار باشد، به افرادی که با مشخصات درخواستی ایشان تطابق داشته باشند، اطلاع خواهم داد و توصیه می شود برنامه نویسان محترم نیز قبل از شروع به همکاری، ملاحظات لازم در این زمینه را به عمل آورند چون من نیز شناختی از طرف مقابل ندارم.

طبقه بندی موضوعی

19- ساخت یک Fragment

شنبه, ۳ خرداد ۱۳۹۳، ۱۲:۱۹ ق.ظ
مترجم: محمد خدیوی
آدرس مطلب اصلی: http://developer.android.com/training/basics/fragments/index.html

در این درس ساخت یک کلاس fragment را خواهید آموخت

2- اضافه کردن یک فرگمنت به activity در حال استفاده ی xml

پیش نیاز : fragment

Fragment  را به صورت یک بخش ماژولار activity  تصور کنید که دوره حیات خودش را دارد رخ دادهای ورودی خود را دریافت می کند و هم چنین در هنگامی که activity  در حال اجرا است می توانید اضافه و یا کم نمایید.

یک جورایی شبیه sub activity های متفاوت دوباره استفاده می کند، این درس دوباره به شما نشان خواهد داد که چگونه کلاس فرگمنت را با استفاده از support library  گسترش دهید که Application شما با device هایی که روی آنها اندرویدهای قدیمی 6/1 را هم نصب شده است اجرا شود .

نکته :

اگر بخواهید که API را به حداقل برسانید Application  های شما یازده یا بیشتر نیاز دارد  بنابراین  نیازی به استفاده از support library ندارید و به جای آن می توانید از کلاس فرگمنت پیش ساخته شده ی framework ها استفاده کنید و آن را با API ها متصل نمایید فقط باید بدانید که این درس روی استفاده از Api  ها ی library تمرکز کرده است که از بسته امضا شده مشخص استفاده می کند و گاهی اوقات کمی از نام هایApp های را که با ورژن های دیگر روی آن platform وجود دارند را تغییری می دهند . قبل از  شروع این درس، پروژه ی اندروید خود را طوری تنظیم کنید که از support library  استفاده کند .  اگر قبلا از support library استفاده نکرده اید  با پیروی کردن از راهنمای support library setup  پروژه  را برای استفاده از V4library تنظیم کنید

هم چنین برای  activity هایتان می توانید actionbar را نیز که به جای v7 appcompatlibrary که با  android 2.1  (API  سطح 7)  هماهنگ است

ساخت یک کلاس fragment

برای ساخت یک کلاس fragment  کلاس fragment را گسترش دهید

پس متد های دوره حیات را که برای منطق برنامه جایگذاری می شود به طور مشابه راهی که یک کلاس activity(دارد)

 یک تفاوت به هنگام ساخت یک فرگمنت این است که باید از فراخوانی onCreateView() استفاده کنید که layout ها تعریف شود .

در حقیقت تنها فراخوانی است که به منظور گرفتن یک فرگمنت در حال اجرا نیاز به فراخوانی دارید، همین است،

مثلا برای مثال، در این جا یک فرگمنت ساده که layot های خود را مشخص می کنم، داریم

 

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;

public class ArticleFragment extends Fragment {
   
@Override
   
public View onCreateView(LayoutInflater inflater, ViewGroup container,
       
Bundle savedInstanceState) {
       
// Inflate the layout for this fragment
       
return inflater.inflate(R.layout.article_view, container, false);
   
}
}

 

درست مثل یک activity یک fragment باید در فراخوانی های دوره حیات دیگر را پیاده سازی می کند که به شما اجازه مدیریت حالت هایش اعم از اضافه  یا کم کردن از activity را می دهد. مثلا وقتی تابع  onpauseactivity فراخوانی شد هر فرگمنت در آن activity  باید فراخوانی onpause را دریافت کند

برای اطلاعات بیشتر درباره حیات فرگمنت و فراخوانی متدها به راهنمای فرکمنت مراجعه نمایید

اضافه کردن یک fragment به activity   با استفاده از xml در حالی که  فرگمنت ها قابل دوباره استفاده شدن دارند کامپوننتهای ماژولار ui  کلاس فرگمنت فرضی باید با parent ، fragment activity  در ارتباط باشد

شما باید  چنین ارتباطی را بدست بیاورید  با استفاده از تعریف هر fragment به همراه layout فایل xml ، activity  تان،

توجه

فرگمنت Activity ، Activity مخصوصی است  که در ساپورت library فراهم شده است تا در سیستم های با ور ژن API  سطح 11  ، هم بتواند انجام دهد .

اگر پایین تر ورژن سیستم شما، از API  سطح 11 یا بیشتر  حمایت کند باید به یک regular activity استفاده نمایید و

در این جا یک مثال از layout فایل که دو فرگمنت را به یک activity اضافه می کند، هنگامی که صفحه نمایش device بزرگ شود در دایرکتوری naw با qulifylarg نشان داده شده.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   
android:orientation="horizontal"
   
android:layout_width="fill_parent"
   
android:layout_height="fill_parent">

   
<fragment android:name="com.example.android.fragments.HeadlinesFragment"
             
android:id="@+id/headlines_fragment"
             
android:layout_weight="1"
             
android:layout_width="0dp"
             
android:layout_height="match_parent" />

   
<fragment android:name="com.example.android.fragments.ArticleFragment"
             
android:id="@+id/article_fragment"
             
android:layout_weight="2"
             
android:layout_width="0dp"
             
android:layout_height="match_parent" />

</LinearLayout>

برای انضمام layout  به activity

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity {
   
@Override
   
public void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView
(R.layout.news_articles);
   
}
}

اگر شما از V7 استفاده می کند activity شما باید به جای آنActionBarActivityکه یک زیر کلاس از فرگمنت activity است، گسترش دهید.

نکته: هنگام اضافه کردن یک فرگمنت به یک activity layout به وسیله تعریف فرگمنت در layout XML نباید فرگمنت را در زمان اجرا از بین ببرید، اگر قصد جابجایی فرگمنت ها را درون و بیرون کار کاربر دارید .

شما به یک فرگمنت به activity زمانی که برای اولین بار activity شروع می شود اضافه کنید، همانگونه که درس بعدی به آن اشاره خواهد شد.

 

 

 

  • وهاب صمدی بخارایی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی