دوره مجازی اندروید (جلسه 9): کار با view های اصلی اندروید



visibility  
mode_comment   ۹۰

به نام خدا، سلام. در این جلسه صفحه پروفایل کاربری رو تکمیل می کنیم.

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

  • Linear Layout و attribute های آن
  • ساختن رابط کاربری با XML و تشریح اجزای مختلف رابط کاربری
  • Edit texts
    • آشنایی با attribute های xml برای EditText
    • اضافه کردن TextWatcher به EditText
  • Buttons
    • آشنایی با attribute های xml برای Button
    • کار با Event های کاربردی آن
  • Checkbox
    • آشنایی با attribute های xml برای Checkbox
    • کار با Event های کاربردی آن
  • Radio Buttons
    • آشنایی با attribute های xml برای Radio button
    • کار با Event های کاربردی آن
  • آموزش اضافه کردن فونت به پروژه و آشنایی با کلاس Typeface
    • اعمال کردن فونت های مختلف روی View های Textview, Button, EditText و ...
info توجه

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

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

comment دیدگاه کاربران
جعفر پیشدادی replyپاسخ

با سلام وتشکر…….. فونتهای بکار برده شده در اپلیکیشن موبایل با وب متفاوت است؟
تگهای بکار برده شده در viewها رو اگر بصورت اسلاید توضیح مختصری میدادید بهترنبود .تگهای پرکاربرد ونوع چبنش وتقدم وتاخر…؟

سعید شاهینی

سلام، خیلی از دوستان توی نظرات می گفتن اسلاید خوب نیست و توی پروژه آموزش بدید وگرنه حق با شماس. صفت های xml تقدمی نسبت به هم ندارن. فقط اگر یک صفت رو دوبار مقدار دهی کنید. مقدار دوم لحاظ می شه. گوگل هیچ لیستی از فونت هایی که در اون ساپورت می شن نگذاشته اما من همیشه از فرمت ttf استفاده می کنم. اما وب از انواع دیگه ای هم پشتیبانی می کنه.

امین حیدری replyپاسخ

عالییییییییییییییییییییی 😀

Mr abbas replyپاسخ

سلام الان تو چه فصلی هستیم تو اندروید؟هنوز 1 یا 2؟ 😆

سعید شاهینی

فصل پنجم!

Mr abbas

😆 😆 😛 فهمیدم دوم 🙂

parsiboy replyپاسخ

مشکل فونت برطرف شد (با یک فونت دیگه امتحان کردم ، درست شد!)

ولی مشکل اول پابرجاست یعنی وقتی به عناصر padding و margin میدم ، از کادر صفحه نمایش خارج میشن
ولی وقتی فواصل رو حذف میکنم عناصر نمایش داده میشن
آیا باید توی یه دستگاه دیگه با رزولوشن دیگه تست کنم ؟ چطور میشه صفحات وب اسکرول بهش بدیم ؟

با تشکر

سعید شاهینی

سلام کدتون رو ازش اسکرین شات بگیرید همچنین تصویر اپ و برام ایمیل کنید تا ببینم ایراد از کجاس.

parsiboy

با تشکر از پیگیری شما
ارسال شد

محمد احمدی replyپاسخ

سلام واقعا اموزش ها عالی هست خداقوت
اگه ممکنه همش با اسلاید پیش برید و مثال بزنید 😆

Mr abbas replyپاسخ

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

سعید شاهینی

سلام، توی جلسه دهم آخر ویدیو رو تماشا کنید، راه حلشو آموزش دادم.

amir.ramin76 replyپاسخ

سلام
شما که activity پروفایل رو درست کردید قسمتی نداشت که عنوان اون رو نشون بده و قسمت بالایی activity خالی بود ولی من که درست کردم یک قسمت داره که عنوان برنامه رو نوشته! چیکار کنم که activity من هم مثل شما بشه؟
لینک عکس: https://i.imgsafe.org/9dcc9dfdc4.png

سعید شاهینی

سلام، داخل فایل استایل این گزینه رو جایگزین استایل اپ بکنید.

فاروق شایسته رودی

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

سعید شاهینی

سلام، اینجا نمایش داده نمی شن کدها، براتون ایمیل کردم

amir.ramin76

لطفا کد رو برای من هم ایمیل کنید

سعید شاهینی

سلام، ایمیل شد.

فاروق شایسته رودی replyپاسخ

سلام استاد محترم اگر درست شنیده باشم شما در فیلم گفتید addTextChangedListener یک setter است و در سایت آندروید نوشته An event listener is an interface in the View class لطفا توضیح دهیدممنونم

سعید شاهینی

سلام، TextWatcher یک interface هست. اما addTextChangedListener یک setter

ممم ممم replyپاسخ

ممنون میشم کد تغییر استایل لایوت ها رو به بدون نویگیشن بار برای بنده هم ارسال کنید!
ممنون

سعید شاهینی

با سلام، ایمیل کردم

Emad Haraji replyپاسخ

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

سعید شاهینی

سلام، راه های مختلفی هست. به عنوان مثال می شه از relative layout یا gridlayout استفاده کرد برای حل این مسئله ولی باید توجه داشتید که توی صفحه نمایش های خیلی کوچیک مشکل ممکنه بوجود بیاد. برای اطلاعات بیشتر تماس بگیرید راهنماییتون می کنم. چون سوالتون کلی هست.

Ali Movahedi replyپاسخ

ویدیو اپلود شده ناقص هست بررسی کنید

سعید شاهینی

سلام آقای موحدی، بررسی کردم مشکلی نداشت.

سید فاضل سدره نشین replyپاسخ

سلام
چرا در textwhatcher اون s نمیاد و دستور بصورتی دیگر وارد میشه و بدون s هست
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
و چار سکونس بدون اس است CharSequence

سعید شاهینی

سلام، مهم نیست، فقط اسم متغیر ها فرق می کنه

امیررضا رحیمی replyپاسخ

سلام
1-من تو گوشی ام اپم رو تست میکنم دکمه ثبت اطلاعات نصفه نمایش داده میشه راه حل چیه؟
2-پروفایل اکتیویتی نمایش داده نمیشه به عنوان “Defalt Activity” یعنی باید به وسیله دکمه جا به جا بشم این موضوع هم راه حلی داره؟

سعید شاهینی

سلام،
1- اسکرین شات کد و اپ رو بهم بدید
2- بله توی جلسات بعدی آموزشش هست.

hamidreza khajeh replyپاسخ

خسته نباشید استاد

یه سوال باید برای همه اجزای رابط کاربری مون alignparentLeft تعریف کنیم تا تنظیم بشن ؟
یا فقط قسمتای مهم مثل همون ایمیج ویو فلش بک؟

و یه نکته دیگه:اون تایپ فیس یا همون فونت هایی که اضافه کردیم فقط به پرامتر های رادیو باتن،باتن و ادیت تکس اضافه شد دیگه درسته؟پس با این اوصاف یه چیزایی مثل کلمات “اطلاعات کاربری” یا “تخصص ها” یا بقیه نوشته ها ی اینجوری رو هم باید فونتشونو همااهنگ کرد،آیا راهی هست بشه مثلا با یه راهکار،فونت کل نوشته های اپ و رابط کاربری عوض بشه؟یا باید دونه دونه واسه همشون همینطور فونت تعریف کرد؟

پیشاپیش سپاس از جوابتون استاد

سعید شاهینی

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

hamidreza khajeh replyپاسخ

و یه سوال دیگه من مفهوم رشته هارو خوب متوجه نشدم ! تو جلسات پایه ای اول زیاد این کلمه به گوش من نخورد ! میشه یه توضیح در موردشون بدید؟
و یه توضیح هم در مورد value Of بدید ببینم دقیقا چیکار میکنه تو قسمت کد نویسی جاوا این جلسه؟
یه جای دیگه هم از s.tostring() استفاده کردید که من تعریف درستشو متوجه دقیقا متوجه نشدم

ببخشید یکم سوالاتم زیاد شدش
سپاس ازتون

سعید شاهینی

سلام، خواهش می کنم، کار متد مثلاً string.ValueOf تبدیل عدد یا مثلاً نوع boolean به رشته هست. s.ToString هم کارش تبدیل charSequence به رشته بود.

sara salami replyپاسخ

سلام استاد برای من عکس back groundموقع تست درگوشی واقعی ( GalaxySumsung)بخشی ازاون زیرتولبارقرارمی گیره ونقطه شروع آن دقیقا بعدازاتمام تولبارنیست.چه ویژگی رو باید ست کنم تادرست بشه؟

sara salami replyپاسخ

بالا کدی دیده نمیشه !!

سعید شاهینی

سلام براتون ایمیل کردم، به دلیل داشتن تگ اینجا نمایش داده نمی شن

sara salami

ممنون استاد.مرسی .تحسین برانگیزید…

علي احمدی replyپاسخ

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

سعید شاهینی

سلام، هر موقع که یه زبان جدید می خوایم یاد بگیریم اولش یکم گنگه چون اطلاعاتمون کمه و همه ی مباحث هم بهم ربط دارند بنابراین درکشون سخت می شه. اما در گذر زمان و با تمرین مسائل رو درک می کنید و تازه متوجه می شید که مثلاً چرا باید از Interface استفاده کرد یا مثلاً چرا باید Adapter برای لیست ساخت و غیره

علي احمدی replyپاسخ

سلام استاد من یه سوال دیگه هم داشتم
یه جا گفتید که این createFromAsset به خاطر اینکه استاتیک هست اینجوری نوشته میشه
Typeface typeface = Typeface.createFromAsset(getAssets(), “fonts/iran_sans.ttf”)
یه سوالی اگه استاتیک نبود چطوری مینوشتید ؟؟ اگه میشه بنویسید چون میخوام فرقشو بدونم
شرمنده زیاد سوال میپرسم

سعید شاهینی

سلام اگه استاتیک نبود باید از کلاس typeface نمونه می گرفتیم. مثال:
Typeface var= new Typeface()
Var.createFromAssets()

علي احمدی replyپاسخ

استاد ممنون که جواب ما را میدید یکی از نظرات من جا مونده اینم جواب بدید ممنون میشم
استاد یه سوال دارم
EditText edittextname = (EditText) findViewById(R.id.editText_name)
این edittextname اینجا متغییره یا object چون توی بحث اولیه جاوا طریقه ساختن object که فرق میکرد با کیبورد new میساختیم متغییر هم اگه میخواستم تعریف کنیم باید نوع public یا … اولش میزاشتیم من سر این مورد گیج شدم

سعید شاهینی

سلام، اسم هر دو متغیر هست و فرقی نمی کنه. اگه متغیری رو خواستیم در سطح کلاس تعریف کنیم از AccessModifer (مثال: private) استفاده می کنیم.

هادی خضرپور replyپاسخ

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

سعید شاهینی

سلام، بله، لطفا بهم ایمیل بزنید و ذکر کنید چه فایل هایی رو احتیاج دارید تا براتون ارسال کنم. چون این جلسه مربوط به خیلی وقت پیش بوده و من فراموش کردم چه فایل هایی بوده. ممنونم

امیررضا رحیمی replyپاسخ

سلام اندروید استودیو موقع اتنخاب Specified Activity این ارور رو میده:
The activity must be exported or contain an intent-filter

سعید شاهینی

سلام، اگه از قسمت Edit Configuration رفته باشید، همچین اروری نخواهد داد. جلسات بعدی رو مشاهده کنید چون این مورد رو کامل توضیح دادم.

F B replyپاسخ

سلام، اگه خودِ فایل های حاوی محیط برنامه نویسی هر جلسه رو بذارید خیلی بهتر میشه؟ مثلا این جلسه خود کدهایی که نوشتیم چه جاوا و چه xml ,…

ممنون

سعید شاهینی

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

amin ataei replyپاسخ

سلام مهندس بسیار ممنون از آموزش خوبتون، من تا اینجا پیش رفتم ولی با مشکل برخورد کردم، نمیدونم چرا اجرا نمیشه. دقیق نمیدونم مشکل از کدم هست یا کامپایلر دو سه روز ام وقت گذاشتم نشده. اگر زحمت بکشین فایل هاش رو تا اینجا برام بفرستین ممنون میشم. یعنی تا قبل از recyceler .
hadi723456@gmail.com

سعید شاهینی

سلام، خب یه اسکرین شات از ارورتون بهم بدید، چون من فایل های اون موقع رو ندارم متاسفانه

Ali replyپاسخ

سلام.واقعا عالی بود.مرسی.مخصوصا دو نکته آخر که ذکر فرمودید.
اینم از اپی که طبق آموزش ساختم:

ممنون میشم نظرتون رو بفرمایید.

سعید شاهینی

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

Peyman Ataie replyپاسخ

سلام اقای شاهینی
اخر ویدئوی این جلسه گفتین هر اکتیویتی که می سازیم حالت راست به چپش (گزینه ی Preview Right to Left) رو هم چک کنیم که مشکل نداشه باشه اما اصلا چنین گزینه ای تو language نیست و فقط یه گزینه داره اونم Edit Translation هستش . چطور اون بخش رو پیدا کنیم ؟؟؟؟

سعید شاهینی

سلام٬ ورژن قبلی اندروید این ویژگی رو به صورت پیش فرض داشت ولی الان دیگه نیست. من راهی که برای حل این مشکل پیدا کردم اینه که یه پوشه به نام values-fa بسازید و یک فایل strings.xml داخل اون ایجاد کنید. بعد از این کار می تونید از منوی language (که قبلا گزینه preview right to left داشت) زبان فارسی رو انتخاب کنید.

محمد سالمی گماری

سلام
این پوشه values-fa کجا درست کنیم؟

سعید شاهینی

سلام٬ داخل پوشه ی res

Mohammad Nasrollahi

سلام استاد
این کار رو کردم ولی گزینه right to left اضافه نشد.

سیدفاضل هاشمی replyپاسخ

سلام.
من همه کارای اینو ویدیو رو انجام دادم.اما بعد از تعیین Toast.کلید تغییر عکس .بعد از ران کردن دیگه برام نه ارور میده نه برنامه رو بالا میاره چکار باید بکنم؟؟؟؟؟؟

سعید شاهینی

سلام از ارورش اسکرین شات بگیرید واسم ارسال کنید تا بدونم مشکل چیه

سیدفاضل هاشمی

سلام
من براتون فرستادم لطفا جوابمو بدین!!!!

سعید شاهینی

سلام کجا فرستادید؟

سیدفاضل هاشمی

به ایمیلتون فرستادم(saeedshahiniit@gmail.com) .3یا4روز پیش فرستادم.2پیام فرستادم.

سعید شاهینی

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

مصطفی کریم زاده replyپاسخ

با سلام خدمت استاد.
می خواستم بپرسم که وقتی یه view تو محیط کدنویسی اضافه می کنم و طولشو match_parent و ارتفاعشو wrap_content میزارم ولی بعدش یهو نمی دونم چی میشه این تنظیمات به هم می خوره و absoulute x,y فعال میشه و طول و عرض تنظیم شده صفر دی پی میشه و هرکاری می کنم کهmatch_parent و wrap_contentبشن ،
نمیشه.مشکلش کجاست؟

سعید شاهینی

سلام٬ دو حالت ممکنه وجود داشته باشه که باعث بهش wrap_content به درستی کار نکنه. یکی اینکه داخل کلاس اون View متد onMeasure اووراید شده باشه و مقدار ارتفاع رو صفر کرده باشه. یا اینکه داخل View هیچ محتوایی نباشه.

ح حسین replyپاسخ

دانلود فایلها ایراد داره لطفا چک کنید

لقمان آوند

الان تست کنید

مهرداد قاسمیان replyپاسخ

با سلام هنگام اضافه کردن فونت پس از ایجاد پوشه assest و ساختن پوشه font و کپی کردن فونت مورد نظر در این پوشه در هنگام اجرا خطای زیر رو میبینم

Error:Execution failed for task ‘:app:packageInstantRunResourcesDebug’.
> java.io.FileNotFoundException: C:\Users\Mehrdad010\AndroidStudioProjects\MyFirstApplication\app\build\intermediates\assets\debug\fonts (Access is denied)

ممنون میشم راهنمایی بفرمایید

سعید شاهینی

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

Desert replyپاسخ

سلام استاد عزیز در اخرین قسمت این اموزش برای بنده مشکلی پیش امد . با راست چین کردن حالت نمایش اکتیویتی ترتیب قرار گرفتن گزینه های CheckBox تغییر کرد و به attribute ای که شما گفتید android:alignParentLeft در داخل CheckBox ها دسترسی نداشتم بنده و همجنین RadioButton ها هم چینششان تغییر کرد و چون فقط برای یکی margin ست شده بود کل چینش نظمش بهم ریخت ممنون می شم
1- کمک کنید دو مشکل بالا را حل کنم
2-ایا راح حلی وجود دارد به طور مثال درج در manifest که این تغییر چینش با تغییر زبان را غیر
فعال کنیم؟
3-سوال اخر این که برای EditText ایا نیازی به ست کردن فونت ن داریم؟

سعید شاهینی

سلام،
راه حل سوال 1 و 2: داخل فایل styles.xml، گزینه AppTheme رو پیدا کنید و صفت layoutDirection رو به اون اضافه کنید و مقدار rtl رو بدید. به این صورت همیشه اپلیکیشن راست به چپ خواهد شد.
راه حل سوال 3: اگه کل اپلیکیشن فونت داره، EditText هم باید فونت داشته باشه که از لحاظ بصری زیبا باشه.

بهرام آزادی replyپاسخ

سلام
یه سوال
چرا فایل های پروژه هر بخش پیوست به هر قسمت نیست؟

سعید شاهینی

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

Zeinab Fallah replyپاسخ

سلام استاد من دارم با ورژن جدید 2.3.3 کار میکنم و از constraintlayout به صورت پیش فرض استفاده میشه وقتیکه Imageview میذارم و با ماوس میرم روی اون layout_width و layout_height از حالت match_parent خالرج میشه داخل سایت اندروید این مطلب رو خوندم آیا دیگه constraintlayout حالت match_parent رو ساپورت نمیکنه؟

Important: MATCH_PARENT is not supported for widgets contained in a ConstraintLayout, though similar behavior can be defined by using MATCH_CONSTRAINT with the corresponding left/right or top/bottom constraints being set to “parent”.

سعید شاهینی

سلام٬ جلسه ی آموزشی مربوط به Constraint Layout رو حتما مشاهده کنید. این مسائل رو کامل توضیح دادم

sisi replyپاسخ

سلام در آندروید استودیو 2.3.3 بجای کد زیر چی باید نوشت در xml

سعید شاهینی

سلام فرقی نداره! اندروید استودیو فقط یه بستر به روز تر برای کد نویسیه و تغییری در کدنویسی ایجاد نمی کنه.

sajjad 7 replyپاسخ

سلام استاد ببخشید بنده تا جاییکه میدونم مثل کد شما در فیلم زدم اما به مشکل بر خوردم که در پایین عرض میکنم
کد :
سوالات :
1- استاد شما در فیلم گوشی نکسوس 5 ایکس و انتخاب کردید اما بنده نکسوس 4 و و رفتم جلو تا وقتی که دکمه ی ثبت اطلاعات و ساختم بعد دیگه نشون نمیداد اون دکمه رو چون رزولویشن گوشی موردنظر شما با بنده فرق میکرد. و حتی روی گوشیم هم . دکمه رفته بود زیر دیده نمیشد. و گوشی نکسوس 4 و به 5ایکس تغییر دادم درست شد اما من میخوام روی همه گوشی ها و تبلت ها درست نشون داده بشه .

2- استاد بنده فونت و اضافه کردم به Edittext دقیقا مثل فیلم پیش رفتم و برنامه رو اجرا کردم اما برنامه اتومات stop میشه.

ممنون میشم مشکل و کمک کنید کد طراحی و گذاشتم براتون بررسی کنید

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="ir.crsoft.sajjad.profile_app.MainActivity"

    >
    <ImageView
        android:id="@+id/form_background_image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/form_background"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="اطلاعات کاربری"
            android:layout_alignParentRight="true"
            android:layout_marginRight="@dimen/standard_margin"
            android:layout_marginTop="@dimen/standard_margin"
            android:textSize="@dimen/larg_font_size"
            android:textColor="@color/white"
            android:layout_centerVertical="true"
             />
        <ImageButton
            android:id="@+id/image_Back"
            android:layout_width="@dimen/action_button_size"
            android:layout_height="@dimen/action_button_size"
            android:src="@drawable/ic_action_back_white"
            android:layout_marginTop="@dimen/standard_margin"
            android:layout_centerVertical="true"
            />


    </RelativeLayout>

         <Button
        android:id="@+id/edit_avatar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="تغییر عکس"
        android:layout_alignBottom="@id/form_background_image"
        android:layout_alignRight="@id/form_background_image"
        />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="62dp"
            android:src="@drawable/default_avatar"
            android:layout_alignRight="@id/edit_avatar"
            android:layout_alignLeft="@id/edit_avatar"
            android:layout_above="@id/edit_avatar"
            />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_below="@id/form_background_image"
        android:padding="@dimen/standrad_padding"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="اطلاعات فردی"
            android:textSize="@dimen/normal_font_size"
            android:layout_gravity="right"
            android:textColor="@android:color/black"
            />
        <EditText
            android:id="@+id/edittext_firstname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/margin_fildes"
            android:layout_marginLeft="@dimen/margin_fildes"
            android:hint="نام"
            android:textSize="@dimen/smal_font_size"
            android:maxLines="1"
            android:maxLength="22"
            />
        <EditText
            android:id="@+id/edittext_lastname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="نام خانوادگی"
            android:textSize="@dimen/smal_font_size"
            android:layout_marginRight="@dimen/margin_fildes"
            android:layout_marginLeft="@dimen/margin_fildes"
            android:maxLines="1"
            android:maxLength="30"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="تخصص ها"
            android:textSize="@dimen/normal_font_size"
            android:layout_gravity="right"
            android:textColor="@android:color/black"
            />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            >
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="css"
                android:layout_marginRight="@dimen/standard_margin"

                />
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="html"
                android:layout_marginRight="@dimen/standard_margin"

                />
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="java"
                android:layout_marginRight="@dimen/standard_margin"

                />

        </LinearLayout>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="جنسیت"
            android:textSize="@dimen/normal_font_size"
            android:layout_gravity="right"
            android:textColor="@android:color/black"
            />
        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginBottom="@dimen/standard_margin"
            android:gravity="center"
            >
            <RadioButton
            android:id="@+id/male_radio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="مرد"
            android:checked="true"
            />
            <RadioButton
             android:id="@+id/female_radio"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="زن"
             android:layout_marginRight="@dimen/standard_margin"
             />

        </RadioGroup>
        <Button
            android:id="@+id/save_info"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="ثبت اطلاعات"
            android:layout_marginRight="@dimen/margin_fildes"
            android:layout_marginLeft="@dimen/margin_fildes"
            
            />
    </LinearLayout>
</RelativeLayout>
سعید شاهینی

سلام، وقت بخیر
پاسخ سوال شماره 1: جلسه نهم راه حل مشکل تدریس کردم. (استفاده از ScrollView)
پاسخ سوال شماره 2: باید از قسمت logcat اسکرین شات بگیرید و ارسال کنید تا بتونم راهنمایی کنم.

مهدی پاکروان replyپاسخ

سلام و عرض تشکر بابت دوره ی آموزشی خیلی خوبتون
استاد یه پیشنهاد دارم
میتونیم برای فونتمون به جای خریدن فونت ایران سنس که قیمت بالایی داره از فونت behdad استفاده کنیم که هم رایگانه و هم خیلی شبیه به فونت ایران سانس هستش

سیدسبحان صانعی replyپاسخ

سلام آقای شاهینی در اندروید استودیو نسخه3.0.1 below وجود نداره باید چیکار کنم؟

سعید شاهینی

سلام، صفت layout_below مربوط به RelativeLayout هست ولی در نسخه جدید اندروید استودیو لایوت ConstraintLayout پیش فرض هست باید اون رو به RelativeLayout تغییر بدید.

محمد واحدی replyپاسخ

استاد برای من راهی که شما برای تغییر فونت گفتین جواب نداد
و من روی پوشه res کلیک راست کردم و یه Android Resource Directory ساختم و گزینه font رو انتخاب کردم
و توی لایه xml خودم تکه کد زیر رو اضافه کردم تا تغییر کرد فونت من
می خوام ببینم کارم اشتباهه یا نه؟ و اینکه آیا کلا درسته همچین راهی یا نه؟

android:fontFamily="@font/b_yekan"
سعید شاهینی

سلام، نه درسته، باید کار کنه، روی اندروید ورژن چند دارید تست می کنید؟ برای ورژن های پایین پیشوند android رو حذف کنید

فردین عباسی replyپاسخ

سلام
کدهای مربوط به جلسه 8 و 9 رو در activity_profile زدم ولی توی design و genymotion تا checkBox ها رو نشون میده یعنی viewهای جنسیت و ثبت اطلاعات نشون داده نمیشه .
ممنون میشم راهنماییم کنید

سعید شاهینی

دلیلش این هست که توی صفحه جا نشدن، جلسه بعدی رو مشاهده کنید که کار با scrollView رو آموزش دادم

saghar saberi replyپاسخ

سلام وقتتون به خیر
استاد راه حلی وجود داره که به جای اینکه برای حالت فارسی بیایم برای هر view ویژگی parentalignleft رو true کنیم کدی بنویسیم که به صورت خودکار روی دستگاه های فارسی درست جواب بده؟

سعید شاهینی

باید از alignParentStart به جای alignParentLeft استفاده کنید.

ارسال نظرات

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