آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

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

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

روش اول : تعیین متن مورد نظر برای نمایش در TextView ، در فایل xml

برای تعیین متن مورد نظر برای نمایش در TextView ، باید درون فایل xml ای که در آن، TextView تعریف شده است، کد زیر را به کدهای تعریف TextView اضافه کنیم :


android:text="متن مورد نظر شما"

در این روش، می توانیم متن فارسی مورد نظرمان را به طور مستقیم، درون فایل xml بنویسیم.

معمولا توصیه می شود که متن های مورد نظرمان را به صورت رشته (string) در فایل strings.xml تعریف کنیم و سپس آن را به صورت یک رشته (string) از فایل strings.xml فراخوانی کنیم. مثلا فرض کنید که متن را به صورت یک رشته (string) و با نام myString ، در فایل strings.xml تعریف کرده ایم، اکنون برای اینکه در فایل xml و در میان کدهای مربوط به تعریف عنصر TextView ، به متن مورد نظر، ارجاع بدهیم، کدهای زیر را می نویسیم :


android:text="@string/myString"

روش دوم : تعیین متن مورد نظر برای نمایش در TextView ، با کدنویسی درون فایل java

اگر بخواهیم که متن مورد نظرمان برای نمایش در TextView را با کدهای java تعیین کنیم، باید در فایل java (یعنی در میان کدهای Activity مورد نظر)، کدهای زیر را بنویسیم :


TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText("My Text");

در کد بالا، id مربوط به TextView را برابر textView1 در نظر گرفته ایم.

دقت داشته باشید که درون فایل java ، می توانیم متن فارسی بنویسیم (فقط اگر در Eclipse کدنویسی می کنیم، برنامه Eclipse تذکر می دهد که فایل java به شکل مناسب برای متن فارسی Save شود)، اما در کل بهتر است که متن (چه فارسی چه انگلیسی) را به صورت یک رشته (String) در فایل strings.xml تعریف کرده و سپس مقدار آن را از آن فایل دریافت کنیم و با روش setText ، در TextView نمایش بدهیم (اینکه متن در خود فایل java نوشته شود و یا در strings.xml ، بیشتر به سلیقه خود برنامه نویسی بستگی دارد). مثلا فرض کنید که متن مورد نظرمان را در فایل strings.xml و با نام myString تعریف کرده ایم، اکنون برای نمایش آن در TextView ، کدهای زیر را می نویسیم :


TextView tv = (TextView) findViewById(R.id.textView1);

String stringName = "myString";
int resID = getResources().getIdentifier(stringName,"string",getPackageName());
String stringToShow = getResources().getString(resID);

tv.setText(stringToShow);

در کد بالا، ابتدا TextView تعریف شده در فایل xml را شناسایی کرده ایم (تگ TextView با id برابر textView1 در فایل xml نوشته شده) :


TextView tv = (TextView) findViewById(R.id.textView1);

فرض می کنیم که در فایل strings.xml ، متن (رشته) مورد نظرمان با نام myString تعریف شده است. بنابراین این نام را در یک متغیر از جنس رشته (String) ذخیره می کنیم (که در ادامه می خواهیم آن را به کار ببریم) :


String stringName = "myString";

با دو خط زیر از کدها، بر اساس نام متن (رشته) تعریف شده در فایل strings.xml ، مقدارش (متن مورد نظرمان) را دریافت کرده و در متغیری از جنس رشته (String) و با نام stringToShow ذخیره می کنیم :


int resID = getResources().getIdentifier(stringName,"string",getPackageName());
String stringToShow = getResources().getString(resID);

در آخر، متن (رشته) ذخیره شده در stringToShow را در TextView شناسایی شده نمایش می دهیم :


tv.setText(stringToShow);
نویسنده علیرضا گلمکانی
شماره کلید 335
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 7 7 0
saye
۱۳۹۵/۰۶/۱۹
۱۳:۱۷

باسلام وخسته نباشید..گفتین

دقت داشته باشید که درون فایل java ، می توانیم متن فارسی بنویسیم (فقط اگر در Eclipse کدنویسی می کنیم، برنامه Eclipse تذکر می دهد که فایل java به شکل مناسب برای متن فارسی Save شود)، اما در کل بهتر است که متن (چه فارسی چه انگلیسی) را به صورت یک رشته (String) در فایل strings.xml تعریف کرده و سپس مقدار آن را از آن فایل دریافت کنیم و با روش setText ، در TextView نمایش بدهیم (اینکه متن در خود فایل java نوشته شود و یا در strings.xml ، بیشتر به سلیقه خود برنامه نویسی بستگی دارد). مثلا فرض کنید که متن مورد نظرمان را در فایل strings.xml و با نام myString تعریف کرده ایم، اکنون برای نمایش آن در TextView ، کدهای زیر را می نویسیم :

اگرمیشه خط به خط کدهاتونو توضیح بدین شرمنده تازه کارم ممنون میشم بیشتر شرحش بدین.

admin
۱۳۹۵/۰۶/۲۳
۲۲:۳۴

سلام.
متنی که ذکر کرده بودید، نیاز به تصحیح داشت که بنده آن را تصحیح کردم (آن را هم در متن کلید و هم در نظر شما، تغییر دادم). بنابراین ابتدا توصیه می کنم که دوباره متن را بخوانید.
همچنین کد مورد نظر را بنده در ادامه کلید (مبحث)، به صورت خط به خط توضیح دادم. بنابراین به همان بخش مربوط به کدها مراجعه کنید و بخش افزوده شده را بخوانید.

سایه
۱۳۹۵/۰۶/۳۱
۱۰:۱۹

سلام خسته نباشید باتشکرازتوضیحی ک دادین امامشکلم هنوزحل نشدم /مشکلم دقیقن دراین خطه:
با دو خط زیر از کدها، بر اساس نام متن (رشته) تعریف شده در فایل strings.xml ، مقدارش (متن مورد نظرمان) را دریافت کرده و در متغیری از جنس رشته (String) و با نام stringToShow ذخیره می کنیم :

int resID = getResources().getIdentifier(stringName,"string",getPackageName());
String stringToShow = getResources().getString(resID)
خطی ک قرمز کردم نباید my string باشه؟
دراین صورت ای دی/ مای استرینگو/ میگیره؟اگراینطوه میشه چن ای دی داد تابه صورت رندوم ازبینشون انتخاب کرد؟
خیلی ممنون .بازم شرمنده/

admin
۱۳۹۵/۰۷/۰۵
۰۹:۴۵

سلام.
بخش قرمز رنگ نباید تغییر داده شود. عبارت myString را در متغیر stringName ذخیره کرده ایم که درون همان پرانتز ذکر شده است (پرانتز روش getIdentifier). بنابراین رشته با نام myString از فایل strings.xml فراخوانی می شود.
دقت شود که رشته مورد نظر در فایل strings.xml باید با کدی مشابه کد زیر تعریف شده باشد (کل کدهای فایل strings.xml را ذکر کرده ایم و فرض کرده ایم که فعلا یک رشته در آن تعریف شده است) :


-----------------------------------------------------------

برای حالتی که گفتید از بین چند رشته (String)، یکی به تصادف انتخاب شود، می توانید چند رشته با نام های مشابه، اما متفاوت در پسوند عددی، تعریف کنید (در فایل strings.xml) :



سپس عددی را به صورت تصادفی تولید می کنید () و بر اساس آن، نام رشته را می سازید (تبدیل عدد به رشته و بعد اتصال به بخش اولیه نام ها که در همه مشترک است). بنابراین نام رشته را به صورت تصادفی به دست آورده ایم و عملیات فراخوانی آن مشابه کدهای ذکر شده است.

سایه
۱۳۹۵/۰۷/۰۵
۲۱:۰۰

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

mohsen
۱۳۹۵/۱۰/۱۵
۲۰:۲۷

ضمن عرض سلام و خسته نباشید به شما می خواستم خواهش کنم نحوه خواندن یک فایل متنی .txt از روی حافظه اکسترنال و نمایش آن در یک TextView را آموزش دهید.
با تشکر

مرتضی
۱۳۹۷/۱۲/۱۳
۱۹:۲۰

اره دقیقا من هم از دوستان خواهش میکنم نحوه ست کردن فایل .text  رو اموزشش رو بزارن
مثلا mytext.txt از پوشه raw

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)