String : نمایش متن توسط رشته ها

به نام خدا

در آموزش طراحی رابط کاربری کار با ویجت ها از جمله TextView و Button را یاد گرفتیم. به عنوان مثال برای تعریف متن یک دکمه از ویژگی text به صورت زیر استفاده می کردیم:

android:text="Start"

در یک اپلیکیشن ساده ممکن است تعریف متون به اینصورت، ساده ترین راه باشد اما برای یک اپلیکیشن که از چندین اکتیویتی تشکیل شده و یا محتوای زیادی را شامل می شود، مطمئنا دردسرساز خواهد شد. فرض می کنیم اپلیکیشن ما شامل ۵ اکتیویتی بوده که در انتهای هرکدام دکمه ای با متن “مراجعه به وب سایت ما” قرار داده شده. در حالت عادی شما باید در هر اکتیویتی که دکمه را تعریف کرده اید، متن را هم تعیین کنید. حالا تصمیم گرفته ایم “مراجعه به وب سایت ما” را به “بازدید از وب سایت” تغییر دهیم. تنها چاره این است که تغییرات را در هر ۵ اکتیویتی روی متن اعمال کنیم که زمان بیشتری از توسعه دهنده می گیرد و علاوه بر آن احتمال وقوع اشتباه را نیز افزایش می دهد. یا بخواهیم زبان اپلیکیشن را عوض کنیم. باید تمامی دکمه ها و متن ها و تکست فیلدها را یک به یک پیدا کرده و متون و کلمات فارسی را با زبان انگلیسی جایگزین کنیم. ضمن اینکه این تکرار متن بخصوص در متن های با تعداد کاراکتر بالا باعث شلوغی کد و در نتیجه سنگینی و افزایش حجم نیز خواهد شد. روش بهینه استفاده از رشته ها (String) می باشد. برای تمرین، پروژه ای که قبلا روی آن تمرین کرده بودیم را باز می کنیم.

رشته 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 ، لیست پیشنهادی نمایش داده می شود :

رشته string

مشاهده می کنیم که در پیش نمایش عبارتی که به صورت رشته تعریف کرده بودیم نمایش داده می شود:

رشته string

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

دانلود فایل این آموزش با فرمت PDF
تعداد صفحات : ۴
حجم : ۶۰۰ کیلوبایت
قیمت : رایگان
دانلود رایگان با حجم ۶۰۰ کیلوبایت لینک کمکی
این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید
4.1/5 - (11 امتیاز)
پرسش‌ها و دیدگاه‌های کاربران
دوره آموزش برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید

با دریافت این دوره به تمامی آموزش‌های غیر رایگان و رایگان موجود در وب سایت دسترسی دارید که تخفیفی برای آموزش‌های غیر رایگان نیز درنظر گرفته شده. این پکیج به دو صورت دانلودی و ارسال پستی ارائه می‌گردد.
آموزش‌های اندروید استودیو در دو دسته «پایه» و «تکمیلی» منتشر می‌شوند.
آموزش‌های پایه شامل مباحث اصلی و ضروری و آموزش‌های تکمیلی مطالبی است که می‌بایست در کنار مطالب اصلی بررسی شود.
با خرید این دوره، به تمامی آموزش‌های غیر رایگانی که در آینده منتشر می‌شود نیز به صورت رایگان دسترسی خواهید داشت!

یک دیدگاه بنویسید

پرسش‌های زیر تایید و پاسخ داده نـــخواهند شد:
۱: جزء موارد مطرح شده در صفحات مشکلات و پرسش‌های رایج و بروزرسانی‌های محتوای آموزشی باشد
۲: سوال قبلا توسط کاربران در دیدگاه‌ها مطرح و پاسخ داده شده باشد
۳: پرسش خارج از مبحث آموزشی موجود در این صفحه باشد