سلام دوستان امیدوارم حالتون خوب باشه
با یه مبحث جدید در خدمت شما هستیم با یه مقدمه کوچیک وارد بحث میشیم.

هاردکودینگ (HardCoding ) چیست ؟
میشه گفت در صورت عدم استفاده روش های اصولی و بهینه در کدنویسی ، که باعث سخت تر و طولانی تر شدن اصلاح یا اعمال تغییرات در کدها میشه هاردکدینگ گفته میشه.
برای مثال فرض کنید که شما یک اپلیکیشن دارید که از ۱۰ صفحه (لیوت) تشکیل شده و در پایین هر بخش مانند تصویر زیر اسم سایتتون رو روی یک Text View نمایش داده اید.برای مثال (من و اندروید ) .

حالا بعد از مدتی تصمیم می گیرید که به جای من و اندروید از (ManoAndroid.com) استفاده کنید.یه روشش اینه که یکی یکی فایل های لیوت رو باز کرده و برای هر Text View مقدار ثابت من و اندروید رو تغییر بدید که این یعنی  ۱۰ بار انجام دادن این کار.حالا فرض کنید بخواید این کار رو برای ۱۰۰ تا لیوت انجام بدید، حساب کنید چقدر زمانبر میشه.
روش آسون جهت  جلوگیری از هاردکدینگ خیلی ساده است !!! نگهداری مقادیر به صورت نام= مقدار در فایل String.xml و ارجاع به اون مقادیر.

 

 

آشنایی با فایلString.xml
ساختار ذخیره سازی مقادیر در فایل string.xml بصورت Name/value  (مقدار/نام )هست  .بطور مثال برای نمایش اسم سایتمون (من و اندروید) یک نام براش درنظر میگیریم مثلا Site و مقدار من و اندروید رو بهش میدیم.
نام (Name) میشه :site
مقدار (Value) میشه :من و اندروید
حالا هر جا که می خواستیم اسم سایتمون یعنی من و اندروید رو نشون بدیم به جای این که مستقیم بنویسیم (من و اندروید) میگیم مقدار متعلق Site رو از فایل string.xml پیدا کن و اون رو برگردون(string/Site@).حالا اگه توی صد بخش از برنامه عبارت “من و اندروید” رو نمایش داده باشیم و بخواهیم اون رو عوض کنیم دیگه نیاز نداریم  تا به تک تک اونا بخش ها مراجعه کرده و مقدار اون ها رو عوض کنیم بلکه فقط کافیه مقدار متعلق به Site رو تغییر بدیم.در ادامه با نحوه ذخیره سازی و استفاده از مقادیر در این فایل آشنا می شید.


مکان این فایل در فولدر Value می باشد (تصویر زیر را ملاحظه نمایید).


برای مشاهده محتویات این فایل بر روی آن دابل کلیک کنید.

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

تمامی رشته هایی که به در این فایل ذخیره میکنیم بین دو تگ باز و بسته <resource>… </resource> قرار میگیرند.همین طور که مشاهده می کنید به طور پیش فرض یک رشته در این فایل قرار داده شده که اسم اون app_name هست که مقدار اون اسم اپلیکیشن شما (اسمی که در مرحله اول ساخت پروژه انتخاب کرده اید) است.

 

 

چجوری یک مقدار جدید به فایل String.xml اضافه کنم ؟
ساختار تعریف یک مقدار جدید در این فایل به صورت زیر هست :

برای مثال ذخیره اسم سایت( من و اندروید ) به صورت زیر عمل میکنیم.

 

 

نحوه استفاده از مقادیر موجود در  String.xml
ساختار دسترسی به مقادیر موجود در فایل String.xml به صورت string/Name@ است که به جای Name نام موردمون (در مثال ما Site ) را وارد می کنیم .
برای مثال فرض کنید میخواهیم خاصیت Textمتعلق به  TextView را به این روش نام گذاری کنیم.برای این کار  بصورت زیر عمل میکنیم :

بدین ترتیب عبارت من  و اندروید برای خاصیت Text مربوط به تکست ویو قرار داده می شود.

 

مزایای استفاده از ذخیره مقادیر در فایل Strnig.xml  :
۱- تمامی نام ها و اسامی که در اپلیکیشنمون استفاده کرده ایم در یک فایل متمرکز شده اند که براحتی میتونیم اونها رو مشاهده و ویرایش کنیم .
۲- توانایی ترجمه اپلیکشن به زبان های دیگر سهولت میبخشد.(کافیه فایل String.xml ترجمه بشه)
۳-جلوگیری از هاردکودینگ که در بالا با مفهوم اون آشنا شدید.