شنبه, ۱ مهر ۱۳۹۶، ۰۹:۲۵ ق.ظ
نمایش عدد به جای کاراکتر در TextView
شاید برای شما هم پیش اومده باشه که بخواین ترکیب دو تا داده متنی (string) رو توی یه TextView ویا ... نمایش بدید. از قضا یکی از این داده ها در فایل string ذخیره شده و شما موقع اتصال این دو داده با همدیگه ، متنی رو که مشاهده می کنید شامل یک عدد است نه مقدار متنی داده ذخیره شده در فایل string.
متن زیر را در نظر بگیرید :
tv.setText("Welcome to " + R.string.app_name);
در متن بالا ما توقع چاپ متنی مثل : Welcome to MyApp رو داریم ولی به جای اسم نرم افزار یک عدد طولانی مثل 2131230755 می بینیم.
در واقع R.string.app_name یک مقدار عددی برای شناسایی این متغییر است (identifier). که در فایل R قرار دارد. و نتیجه (String + مقدار عددی Long )برابر است با همان مقدار عددی ای که به متن اختصاص پیدا کرده است.
برای رفع این مشکل بهتر است به صورت زیر عمل کنیم :
getString(R.string.app_name);
و یا
getResources().getString(R.string.app_name);
*** همه منابع (Resource) یک مشخصه دارند که در R ذخیره میشود. مثل Layoutها و String ها و ....