نمایش نتایج 1 تا 7 از 7

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

  1. #1

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

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

    برای شروع من میپرسم: منظور از Contex و Inflater چیست؟

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: مفاهیم کار برنامه نویسی در اندروید

    اینجا توضیح خوبی داده:
    http://stackoverflow.com/questions/3...ext-in-android
    در واقع میگه شما هنگامی که میخواهید دسترسی به اطلاعاتی از خود یک اپلیکیشن یا یک اکتیویتی مثلا داشته باشد از اون استفاده میکنید. در واقع رجوعی هست به اپلیکیشن خودتون یا یک اکتیویتی که معمولا اگر تغییری تو سطح اونها داشته یاشیم نیاز هست به اونها ارجاع یا رقرنس بدیم که بگیم کارمون رو کدوم بخش برنامه داره اعمال میشه.

  3. #3

    نقل قول: مفاهیم کار برنامه نویسی در اندروید

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

  4. #4
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: مفاهیم کار برنامه نویسی در اندروید

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

  5. #5
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: مفاهیم کار برنامه نویسی در اندروید

    کلاس Context کلاس پایه ی خیلی از کلاسهای دیگه مثل Activity هست.
    در SDK اندروید برای انجام برخی از کارها، نیاز هست که از شئ/کلاس Context استفاده کنید، مثل دسترسی به منابع، دسترسی به تنظیمات سیستمی، کار با دیتابیس.

    برای اینکه مفهوم Context رو بهتر درک کنید یک مثال میزنم:

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

    البته مثال دقیق و کاملی نیست، مهندس ها بخش های مختلف اپلیکیشن شما هستن، وقتی اکتیویتی شما می خواد به یه کلاس دیگه بگه برو برام دیتابیس رو باز کن و اطلاعاتت رو بده، دیتابیس ازش درخواست می کنه که پیغامش رو از طریق (درواقع همراه با) Context بفرسته تا بدونه پیغام از کجا اومده و بتونه با کمک اون کارش رو انجام بده.

    این مثال ها هیچکدوم نمیتونن دقیقاً رفتار Context رو شرح بدن، چون برای شرح کامل این کلاس و دلیل اینکه وجود داره، باید SDK اندروید رو بررسی کرد و توضیحش داد.


    در مورد Inflater:
    وقتی شما در ابتدای اجرای اکتیویتی متد setContentView رو صدا می زنید، این متد فایل XML مربوطه رو پردازش می کنه، به داده هایی تبدیلش می کنه که درنهایت باعث میشه Viewها رسم بشن و id ها به سیستم شناسونده بشن.
    بعضی وقتا شما نیاز دارید که یک فایل XML رو برای نمایش آماده کنید (مثلاً تو آداپتور مربوط به ListView تا هر سطر رو شخصی سازی کنید و به شکل دلخواه نمایشش بدید.
    Inflate همون کار رو میکنه، فایل XML رو برای سیستم در قالب View ترجمه می کنه تا بشه رسمش کرد و یا سایر عملیاتی که با View انجام میشه روش انجام داد

  6. #6

    نقل قول: مفاهیم کار برنامه نویسی در اندروید

    درود به همه دوستان
    اگر در گوگل تایپ کنید android context class شما رو به لینک زیر هدایت میکنه
    http://developer.android.com/referen...t/Context.html
    در این صفحه توضیحات کاملی برای شما نمایش داده خواهد شد که من سعی میکنم در اینجا به اختصار به اون بپردازم ( البته در حد اطلاعات و توانم )
    کانتکس در اصل یک ابسترکت کلاس منحصر به فرد هستش که از کلاس آبجکت اکستند کرده که در اصل ریشه تمام کلاسها در اندروید هست، این ابسترکت کلاس توسط شرکتهای بزرگی مانند سامسونگ و غیره که در تولید تلفنهای همراه بر مبنای اندروید، دست دارند پیاده سازی شده.
    اجازه بدید یه کم ساده تر به این موضوع بپردازیم، کانتکس یک ابزار برای معرفی و هندل کردن دیتا میباشد، به بیان ساد تر کانتکست مثل ریموت کنترل تلویزیون شماست و تمام کانالهای تلویزیون بعنوان ریسورسها را در اختیار داره
    mn21A.png
    حالا چرا به کانتکس کلاس نیاز داریم ؟
    بعنوان مثال برای لود کردن یک فونت خاص که شما در فولدر aset از قبل سیو کردید، یا برای لانچ کردن یک اکتیویتی جدید، ایجاد ویوی جدید مثلا ایجاد یک تکست ویو توسط کد نویسی در کلاس جاوا ( البته این کار رو میشه به راحتی در کلاس xml انجام داد بدون نیاز به استفاده از کانتکست، ولی بعضی وقتا نیاز هست که در کلاس جاوا انجام بشه )
    مثال ساده اینکه اگر شما برنامه ای مینویسید که باید آلارمی را در ساعت 6 به صدا دربیاره، شما نیاز به AlarmManager دارید که برای دسترسی به اون نیازمند کانتکس کلاس هستید.
    مثال دیگه اینکه اگر شما بخواهید یک تکست ویو در کلاس جاوا ایجاد کنید باید به شکل زیر عمل کنید
    TextView tv=new TextView(this) ; this =Context
    در مثال بالا کانسترکتور تکست ویو از شما یک کانتکست میخواهد، که ما با کلمه کلیدی this به کل کلاس اشاره میکنیم بعنوان یک کانتکست

    سه راه برای دسترسی به یک آبجکت کانتکس وجود داره

    getApplicationContext() one
    getContext() two
    getBaseContext() three
    اگر شما در یک اکتیویتی خاص باشید و بر روی آن کار میکنید، میتوانید از کلمه کلیدی this برای پاس کردن کانتکست استفاده کنید

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

  7. #7

    نقل قول: مفاهیم کار برنامه نویسی در اندروید

    خیلی خوب بود ممنون

تاپیک های مشابه

  1. بازار کار برنامه نویسی اندروید
    نوشته شده توسط hessam2003 در بخش Android Studio
    پاسخ: 12
    آخرین پست: پنج شنبه 16 اردیبهشت 1395, 07:27 صبح
  2. شروع کار برنامه نویسی موبایل
    نوشته شده توسط Mohammadreza Heidari در بخش برنامه نویسی موبایل
    پاسخ: 9
    آخرین پست: شنبه 19 آبان 1386, 12:38 عصر
  3. سفارش کار برنامه نویسی
    نوشته شده توسط hesamhakimjavad در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: جمعه 26 آبان 1385, 12:34 عصر
  4. آغاز به کار برنامه نویسی با ASP.NET
    نوشته شده توسط hmdkarimi در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: یک شنبه 07 خرداد 1385, 11:34 صبح

قوانین ایجاد تاپیک در تالار

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