دوره مجازی اندروید (جلسه 8): شروع کار با Xml و View های پایه اندروید

- visibility ١١۶ mode_comment

به نام خدا، سلام. توی این جلسه می خواهیم صفحه پروفایل کاربری رو به همراه هم پیاده سازی کنیم. برای پیاده سازی رابط کاربری در اندروید از xml استفاده می کنیم، بنابراین ابتدا با ساختار xml آشنا می شویم. بعد از آن با view های مختلف کار خواهیم کرد.

مطالب مطرح شده در این جلسه عبارتند از :

  • آشنایی با ساختار Xml و کاربردهای آن
  • معرفی Relative layout
  • معرفی Image Button
  • معرفی TextView
  • معرفی Button
  • معرفی Imageview
  • معرفی Toast
  • ست کردن رویداد کلیک بر روی view های مختلف
  • معرفی استاندارد های مختلف اندازه گیری اندروید

نکته ی مهم: برای حذف نوار بالای اکتیویتی (اکشن بار)، تکه کد زیر را با تگ style با نام AppTheme جایگزین کنید:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

نکته ی مهم: دوستانی که هنگام تغییر اکتیویتی پیش فرض با مشکل زیر رو به رو می شوند:

the activity must be exported or contain an intent-filter

تکه کد زیر را باید به فایل AndroidManifest.xml اضافه نمایند.

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

به عنوان مثال می خواهیم اکتیویتی ProfileActivity را به عنوان اکتیویتی پیش فرض انتخاب کنیم، ابتدا داخل فایل AndroidManifest جستجو می کنیم، هر جا که تکه کد بالا را دیدیم آن را Cut می کنیم، سپس آن را به این شکل به تگ مربوط به ProfileActivity اضافه می کنیم:

<activity
    android:name=".view.activity.ProfileActivity"
    android:label="اطلاعات کاربری"
    android:windowSoftInputMode="stateHidden">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
info توجه

این مطلب یک جلسه از دورهدوره آموزش پروژه محور برنامه نویسی اندروید - پایه تا پیشرفته می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

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

comment دیدگاه کاربران
مهرداد قاسمیان

با سلام و قت بخیر
بنده به تازگی بسته رو خریدم و کار با آن را شروع کرده ام
در همین ابتدای کار با مشکل مواجه شدم شما در این ویدیو با کار Relative layout کار می کنید اما تو آندروید استدیویی که من باهاش کار میکنم android.support.constraint.ConstraintLayout هستش
در این که من باهاش کار می کنم به عنوان مثال برای راست چین کرده صفحه android : layout_aligin_parentRight وجود نداره برای راست چین کردن متن textview و خطا میگیره
ممنون میشم راهنمایی کنید

سعید شاهینی

سلام، بله ولی شما باید ConstraintLayout رو با RelativeLayout جایگزین کنید مثلاً

مهرداد قاسمیان

چطور به ConstraintLayout رو با RelativeLayout جایگزین کنم؟
به طور دستی این کار رو انجام بدم؟ یادمه تو نسخه های قبلی آندروید استدیو وقتی روی لایه کلیک میکردی گزینه Convert داشت

سعید شاهینی

سلام٬ دستی این کارو بکنید.

مهرداد قاسمیان

در نسخه جدید آندروید استدیو اجازه نمیده که راحت عکس رو به داخل فوادر drawable انتقال بدیم با کپی کردن
تنها راهی که ظاهرا مد نظر هست این هستش که روی اون پوشه کلیک راست کنیم new Image Asset رو انتخاب کنیم و بعدش Action Bar and Tab Icons رو انتخاب کنیم و بعدش عکس مربوطه درسته؟ یا در نسخه جدید آندروید استدیو راه حل دیگه ای داره

سعید شاهینی

سلام٬ نه محدودیتی وجود نداره! این ویژگی مانند گذشته کار می کنه.

مهدی علیزاده

سلام خسته نباشید
ببخشید بیشتر این مطالبی که در این درس گفتید در ورژن جدید اندروید استدیو کلا نیستن ممنون میشیم اگه آموزش این درس رو به روز رسانی کنید

سعید شاهینی

سلام٬ بله داخل همین ماه آپدیت می شه.

بهرام آزادی

سلام
ببخشید من در layout ها شماره خطوط کدنویسی مشخص نیست
چطور میشه ردیف نمایشگر شماره خط کدها رو نمایان کرد؟

سعید شاهینی

سلام٬ روی ستون سمت سمت چپ Editor(جایی که کدنویسی می کنید) راست کلیک کنید و گزینه show line numbers رو انتخاب کنید.

parhams

با سلام و تشکر از مجموعه ی آموزشی خوبتون.
من به یه مشکلی برخوردم : وقتی اکتیویتی پیشفرض خودم رو از main به اکتیویتی که ساختم (profile activity) تغییر میدم (دقیقا مثل آموزش عمل میکنم)و میام اجراش کنم با این ارور مواجه میشم : the activity must be exported or contain an intent-filter ایراد کار از کجاست و باید چیکار کنم؟

کیوان علی محمدی

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




مهرداد قاسمیان

نسخه جدید آندروید استدیو فرق کرده
من اصلا در نسخه جدید نمی تونم از RecyclerView استفاده کنم
ویدئو رو چند بار دیدم
ممنون میشم راهنمایی بفرمایید

سعید شاهینی

سلام٬ این دوره در همین ماه آپدیت می شه و تغییرات آموزش داده می شوند.

مهرداد قاسمیان

خیلی ممنون

Mohammad Sheklabadi

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

سعید شاهینی

سلام٬ متاسفانه سورس های این جلسه رو خودمم ندارم.

Desert

سلام استاد عزیز شما در اموزش هشت تصاویر را فولدرشان را انتخاب کرده و در resource پیست می کنید و در ادامه انها در پوشه drawable کپی می شوند منتها بنده وقتی با اندروید استودیو کار می کنم در res برای تمام سایز ها یک فولدر mipmap دارم و وقتی هم که در res تصاویر ایکون بک را کپی می کنم برای سایز های مختلف یک فولدر ساختی می شود و زیر drawable قرار می گیرد نه داخل ان اگر هم داخل drawable کپی کنم برای هر سایز متفاوت یک فولدر ساخته می شود و مانند ویدیو اموزش فقط فایل ها را در کنار هم در یک فولدر به نام ان فایل ها نشان نمی دهد ممنون می شم راهنمایی بفرمایید.

سعید شاهینی

سلام، باید حالت نمایش پروژه رو از Android به Project تغییر بدید.

Hamed Hardani

سلام
من از نسخه 2.3.2 اندروید استودیو استفاده میکنم. موقع Build کردن پروژه این ارور رو میده و ظاهرا نمیشه برای Image button از بک گراند null استفاده کرد

وقتی خط کد مربوط به بک گراند رو کلا حذف میکنم برنامه بدون مشکل بیلد میشه و روی امولیتور بالا میاد.
میشه بگید مشکل کجاست؟
============
ویرایش: مشکل حل شد

سلام
Error:(313, 36) String types not allowed (at ‘standard_margin’ with value ’16dp>’).
رو برام خطا میده
clean , rebuiltهم کردم ولی نمیدونم اشکالش کجاست؟
لطفا راهنماییم کنید

سعید شاهینی

سلام٬ از جایی که این خط کد رو اضافه کردید باید اسکرین شات بدید تا ببینم مشکل چیه

محمدرضا علیمردانی

حل شد
مثل اینکه باگ برنامه بوده
بعد از بستن و بازکردن و نوشتن دوباره این موضوع به کلی حل شد
باتشکر

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 3 4 5