String : نمایش متن توسط رشته ها
به نام خدا
در آموزش طراحی رابط کاربری کار با ویجت ها از جمله TextView و Button را یاد گرفتیم. به عنوان مثال برای تعریف متن یک دکمه از ویژگی text به صورت زیر استفاده می کردیم:
android:text="Start"
در یک اپلیکیشن ساده ممکن است تعریف متون به اینصورت، ساده ترین راه باشد اما برای یک اپلیکیشن که از چندین اکتیویتی تشکیل شده و یا محتوای زیادی را شامل می شود، مطمئنا دردسرساز خواهد شد. فرض می کنیم اپلیکیشن ما شامل ۵ اکتیویتی بوده که در انتهای هرکدام دکمه ای با متن “مراجعه به وب سایت ما” قرار داده شده. در حالت عادی شما باید در هر اکتیویتی که دکمه را تعریف کرده اید، متن را هم تعیین کنید. حالا تصمیم گرفته ایم “مراجعه به وب سایت ما” را به “بازدید از وب سایت” تغییر دهیم. تنها چاره این است که تغییرات را در هر ۵ اکتیویتی روی متن اعمال کنیم که زمان بیشتری از توسعه دهنده می گیرد و علاوه بر آن احتمال وقوع اشتباه را نیز افزایش می دهد. یا بخواهیم زبان اپلیکیشن را عوض کنیم. باید تمامی دکمه ها و متن ها و تکست فیلدها را یک به یک پیدا کرده و متون و کلمات فارسی را با زبان انگلیسی جایگزین کنیم. ضمن اینکه این تکرار متن بخصوص در متن های با تعداد کاراکتر بالا باعث شلوغی کد و در نتیجه سنگینی و افزایش حجم نیز خواهد شد. روش بهینه استفاده از رشته ها (String) می باشد. برای تمرین، پروژه ای که قبلا روی آن تمرین کرده بودیم را باز می کنیم.
مشاهده می کنید در مسیر res/values فایلی با نام strings.xml تعبیه شده که مختص تعریف رشته ها می باشد.فایل را باز می کنیم :
<resources> <string name="app_name">MyApp Seven</string> </resources>
داخل تگ resources یک رشته با نام app_name و محتوای MyApp Seven تعریف شده که مربوط به نام اپلیکیشن نمایش داده در Action Bar (نوار بالای صفحه) می باشد. فایل linear.xml مربوط به جلسات قبل را باز می کنیم. می خواهیم عبارت Welcome to android-studio.ir app که با رنگ قرمز نمایش داده شده را از طریق رشته ها فراخوانی کنیم. کد این TextView به این صورت بود :
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome to android-studio.ir app" android:layout_gravity="center" android:layout_marginTop="5dp" android:textSize="20sp" android:textColor="#d10000"/>
به سراغ فایل strings.xml می رویم. یک رشته جدید با نام دلخواه welcome_txt و محتوای
Welcome to android-studio.ir app اضافه کردیم :
<resources> <string name="app_name">MyApp Seven</string> <string name="welcome_txt">Welcome to android-studio.ir app</string> </resources>
حالا نوبت به فراخوانی این رشته در مکان موردنظر است. مجدد به linear.xml رفته و ویژگی text مربوط به این TextView را به صورت زیر تغییر می دهیم :
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/welcome_txt" android:layout_gravity="center" android:layout_marginTop="5dp" android:textSize="20sp" android:textColor="#d10000"/>
فراخوانی با /string@ شروع شده و در انتها نامی که برای رشته تعریف کرده بودیم اضافه می کنیم که نیاز به نوشتن این خط به صورت کامل نبوده و تنها با تایپ چند کاراکتر اول مانند str ، لیست پیشنهادی نمایش داده می شود :
مشاهده می کنیم که در پیش نمایش عبارتی که به صورت رشته تعریف کرده بودیم نمایش داده می شود:
از این رشته می توانیم در هر جای دیگر که مایل بودیم استفاده کنیم و هر زمان نیاز به تغییر این متن در کل اپلیکیشن خود داشتیم، تنها با تغییر محتوای رشته در فایل strings.xml به سادگی آن را اعمال کنیم.
تعداد صفحات : ۴
حجم : ۶۰۰ کیلوبایت
قیمت : رایگان
دانلود رایگان با حجم ۶۰۰ کیلوبایت لینک کمکی
سلام خسته نباشید نمیشه از استرینگ ها در کد جاوا استفاده کرد؟
منظورتون رو متوجه نمیشم
سلام
قسمت findviewbyid و context رو در کدوم آموزش هاتون قرار دادید؟
دقیق خاطرم نیست متاسفانه. احتمالا فصل دو یا سه باشه
باسلام لطفا طریقه قراردادن متن های طولانی در قالب pdf رو آموزش دهید
نحوه استفاده از فونت فارسی و UTF8 چگونه است؟
سرچ کنید آموزش استفاده از فونت در اندروید. در کامنت نمیشه توضیح داد
سلام من میخواستم یه کتاب بسازم که ۶۰قسمت داره یعنی باید برا هر قسمت باید یه کلاس بسازم؟شنیدم با رشته ها میشه سریع تر ساخت.
خواهش میکنم کمکم کنید؟
اگه منظورتون ۶۰ صفحه هست، خیر نیازی نیست برای هر صفحه یه کلاس ساخته بشه. سرچ کنید آموزش ساخت کتاب اندروید مطلب فارسی زیاده. عموما از دیتابیس استفاده میشه
خیلی آموزش ها عالین . مرسی
ممنونم بابت مطالب مفیدی که قرار میدید!
مهندس جان خدا قوت پهلوان.خسته نباشی دلاور.اموزش ها خیلی کاربردی و مفید هستن.همینطوری ادامه بده.دمت گرم
با سلام و تشکر از سایت خوبتون
من تازه کار با اندروید استدیو رو شروع کردم، یه سوال دارم و اون اینه که میشه از طریق کد جاوا در منابع(ریسورس ها مثل strings یا colors) تغییرات ایجاد کرد؟
اگر میشه ولی توضیحش طولانیه فقط بگید میشه تا بیشتر پیگیر شم.
سلام
بله. سرچ بفرمایید به نتیجه میرسید
سلام مهندس
می خواستم بدونم میشه از طریق اندروید استدیو یک متن رو از داخل برنامه حذف کرد یا تغییر داد؟
اگه میشه یه راهنمایی بکنید ممنون میشم
اگه منظورتون از داخل برنامه که سورسش رو در اختیار ندارید هست، خیر
خیلی طول کشید آموزش بعدی تون؟!
سلام. تاریخ دقیقی نمیتونم مشخص کنم ولی تایمای خالیمو میذارم رو آماده کردن آموزشای جدید
آموزش جدید رو از دیروز استارت زدم
سلام آموزش بعدی تقریبا چند وقته دیگه آماده میشه؟
سلام. تاریخ دقیقی نمیتونم مشخص کنم ولی تایمای خالیمو میذارم رو آماده کردن آموزشای جدید
آموزش جدید رو از دیروز استارت زدم
ی سوال اندروید استودیو امکانات بیشتری داره یا اکلیپس یعنی می خوام بگم افراد حرفه از اندروید استودیو استفاده می کنن یا اکلیپس؟
از زمانی که اندروید استودیو از حالت بتا خارج شد، گوگل تاکید و تمرکزش رو اندروید استودیو هستش و توسعه دهنده ها رو تشویق به مهاجرت به اندروید استودیو میکنه و در حال حاضر از جهات مختلف، این محیط براب توسعه مناسبتر هست
با سلام
آیا میشه از طریق کد جاوا در string res تغییری ایجاد کرد؟
یعنی به طور مثال متن رو تغییر داد؟
بله. آموزش بعدی یکی از مواردش تغییر string از طریق جاوا هست. میتونید سرچ هم بکنید حتما به نتیجه می رسید
سلام مهندس
یه سوال داشتم.
آیا میشه توی اندروید استودیو بازی هم ساخت؟؟؟
چون که توی اکلیپس و جاوا میشه؟؟؟
اگه میشه ممنون میشم آموزشش رو بذارید.
سلام
محیط تفاوتی نمیکنه. هر کاری که تو ایکلیپس بتونید انجام بدید اینجا هم میشه.
بنده تو حوزه ساخت گیم وارد نشدم هنوز
روزی نیست که نیام اینجا تا چک کنم ببینم اموزش جدید گذاشتید یا نه D:
شما لطف دارید. متاسفانه درگیری ها زیاده و این مدت تایم کمی رو میتونستم بزارم رو تهیه آموزشا. الان یه چند روزه وقتم باز تر شده
سلام به نظر شما برای یه فرد مبتدی اندروید استودیو بهتره یا اکلیپس؟؟؟؟
اندروید استودیو
تشکر از مطلب خوبی که گذاشتید واقعا حرف ندارید. من انجام دادم درست عمل کرد.
سلام.دوست عزیز ممنون از آموزش های مفیدتون.
میشه بگین اموزشای جدید چند روز دیگه گذاشته میشه؟
من از سبک اموزش شما خوشم میاد ولی لطفا تکلیف مارو مشخص کنید که اگه آموزشا قراره مث قبل با تاخیر زیاد گذاشته بشه مجبوریم یه منبع آموزشی جدید پیدا کنیم.
سلام
این چند مدت به علت امتحانات آموزشا عقب افتاد و در حال حاضر رو آموزشای جدید کار میکنم. البته شما هم نباید به یک منبع آموزشی وابسته باشید
سلام
من تازه با اندروید استودیو آشنا شدم و میخواستم بخاطر این آموزش های خوبتون تشکر کنم .
درضمن و درصورت امکان سورس هر بخش رو هم برای دانلود قراربدین تا بتونیم بهتر تمرین کنیم
موفق باشید
سلام, ممنون بابت اموزش های خوب و پرکاربردتون، ادامه اموزش ها رو کی میزارید؟
در اولین فرصت آموزشهای بعدی اضافه میشه و ان شا الله با سرعت بیشتر از قبل
سلام خیلی ممنون از مصالب عالیتون
خیلی از دوستان مانند خودم با اینکه اموزش های شما عالی هست اما به مشکل ها و ارور هایی برخورد می کنیم که حله انها سخت است … به نظره من یک گروه تلگرام بزنیم و به هم کمک کنیم .. اگه موافقین یک گروه بزنیم تو تلگرام … … id man : @farbowwwd
ممنون از پیشتهادتون. مطلبی با عنوان “سوالات متداول” هست که مشکلات اساسی رو توضیح میدیم. گروه هم فعلا فرصتشو ندارم متاسفانه
سلام. روی ویندوز ۷ گوشی رو که وصل میکردم به سیستم موقع اجرای برنامه تو لیست ابزارهای برنامه میومد و میشد برنامه رو روی گوشی تست کرد. الان ویندوز ۸ رو نصب کردم گوشی رو نمیاره. چجوری میتونم این کارو باز انجام بدم؟
ویندوز ۷ و ۸ در این خصوص تفاوتی ندارن. ببینید اشکال از کجاس. چیزی به ذهنم نمیرسه
سلام و سپاس از سایت خوبتون
جناب مهندس من خیلی تمایل دارم برنامه نویسی اندروید رو یاد بگیرم. البته چند بار تلاش کردم که ایکلیپس رو کامل نصب کنم و استفاده کنم نشد که نشد. در این راستا هزینه هم کردم ولی آخرش قسمت نشد که ایکلیپس رو استارت بزنم . البته باید بگم با امر برنامه نویسی بیگانه نیستم.
برای من برنامه نویسی موبایل خیلی اهمیت داره حتما باید یادش بگیرم.
سوال اولم اینه که آیا برای کار اندروید استودیو نیاز هست که تجربه ایکلیپس را داشته باشم یا خیر
سوال دوم اینکه در حال حاضر از کجا شروع کنم
سوال سوم هم این که نمونه برنامه های جمع و جور و کوچولو تون کجای سایت پیدا میشه من استفاده کنم
خیر نیازی به تجربه ایکلیپس نیست. از یادگیری جاوا شروع کنید.
فعلا نمونه برنامه ای روی سایت قرار نگرفته
سلام آموزش بعدی کی اماده میشه
سلام
به زودی
سلام.
ممنون از اطلاعات مفیدی که در اختیارمون میزارید.
لطفا نحوه ی استفاده از سرویس ها با خروجی json رو توضیح بدید. میدونم که این مطلب شاید برای خیلی ها جالب نباشه و مطرح کردنش در اینجا مناسب نباشه. ولی اگه آموزشی کامل و با زبان ساده از این مبحث داشته باشید مایلم هزینه اش رو بپردازم و برام ایمیلش کنید.
با تشکر
آقای مهندس مطهری من یه سوال دیگه هم دارم اونم اینکه من فایل Galaxy رو تو فایل ova گذاشتم اما Genymotion نشناخت و مجبور شدم دانلود کنم تا بشناسه با این وجود بعد دانلود به مشکل بالا که قبلا اشاره کردم برخورد کردم؟
از آموزش های مفیدتون بسیار ممنونم
متوجه نشدم سوالتون چیه
منظورم این بود که فایل Galas4 رو که تو سایتون گذاشتید گفتین تو پوشه ova دستی کپی کنید Genymotion میشناسه اما من با اینکه کپی کردم نمیشناسه فکر کنم یه فایل های جانبی میخواد که تو پوشه deployed هستن و تا اونو نباشن محیط رو به Genymotion اضافه نمیکنه
نه فایل جانبی نداره
ضمنا هر سوال رو تو مطلب مربوط به خودش بپرسید
آقای مهندس مطهری من تو Genymotion نمی تونم شبیه ساز رو اجرا کنم و خطا میده با اینکه یکبار فایل Galexy رو از رو سایت برداشتم و دفعه بعد از خود برنامه با این وجود خطا میده؟!
unable to start the virtual device.
VirtualBox can not start the virtual device
To find out the cause of the problem,start the virtual device from VirtualBox
بعدشم به سایت برنامه Reference میده که اونجا هم چیزی پیدا نکردم.
ممنون میشم بگید چیکار کنم
همینطور که خودش گفته جنیموشن رو از داخل خود VirtualBox اجرا کنید ببینید نتیجه چی میشه
Oracle VM VirtualBox رو که باز می کنم خودش اتوماتیک Galaxy s4 رو میشناسه اما run مکه میکنم پیغام:
موفق به بازکردن جلسه برای ماشین مجازی Samsung Galaxy S4 – 4.4.4 – API 19 – 1080×1920 شبیه سازی نشد.
VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).
کد نتیجه: E_FAIL (0x80004005)
جزء: ConsoleWrap
رابط: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
رو میده؟!
VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED)
اینو سرچ کنید به جواب میرسید. vt-x باید فعال باشه
اون آموزش اصلیه کی میاد
یکی دو آموزش تکمیلی دیگه از طراحی رابط کاربری منتشر بشه بعدش ان شا الله فصل بعدی
چی شد مهندس
در تلاشم. منتها با سرعت کم
تموم نشد؟؟؟
🙂
اگه مشکلی پیش نیاد فکر میکنم بخش اول فصل جدید تا ۴ روز آینده آماده بشه