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

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب تاپیک:

  1. ارجاع به id یک TextView ، با تعریف رشته (string)، در برنامه نویسی اندروید
  2. نمایش یک متن، در یک TextView ، در برنامه نویسی اندروید
  3. تعیین اندازه فونت متن، در یک TextView ، در برنامه نویسی اندروید
  4. تفاوت بین واحد sp و واحد dp ، برای اندازه فونت متن ها، در برنامه نویسی اندروید
  5. تعیین رنگ متن TextView ، در برنامه نویسی اندروید
  6. راست چین، چپ چین و یا وسط چین کردن متن در TextView ، در برنامه نویسی اندروید
  7. تعیین فونت (font) دلخواه برای متن نمایش داده شده در یک TextView ، در برنامه نویسی اندروید
  8. رفتن به خط جدید در هنگام تعریف یک رشته (string) در برنامه اندروید
  9. دریافت یک رشته (string) از فایل strings.xml ، در برنامه نویسی اندروید
  10. خواندن یک رشته (Strings) از فایل strings.xml ، تنها در صورتی که رشته مورد نظر در فایل strings.xml تعریف شده باشد، در برنامه نویسی اندروید
  11. به دست آوردن نام تمامی رشته های (Strings) تعریف شده در فایل strings.xml در پروژه اندروید، به صورت یک آرایه (Array) از جنس رشته (String)، در برنامه نویسی اندروید
  12. تعریف آرایه ای از رشته ها (string array) در فایل strings.xml ، در برنامه نویسی اندروید
  13. دریافت یک آرایه رشته ای (string array) تعریف شده در فایل strings.xml و ذخیره آن در یک متغیر، در برنامه نویسی اندروید
  14. تغییر رنگ پس زمینه TextView ، در برنامه نویسی اندروید
  15. ایجاد فاصله بین متن و لبه های TextView ، در برنامه نویسی اندروید
  16. چک کردن مقدار یک رشته (string)، با equals ، در برنامه نویسی اندروید
  17. حذف فضاهای خالی (کاراکترهای space) ابتدا و انتهای یک رشته (String)، با روش trim ، در برنامه نویسی اندروید
  18. به دست آوردن تعداد کاراکترهای یک رشته (String)، با روش length ، در برنامه نویسی اندروید
  19. چک کردن وجود داشتن یک رشته (String) در رشته ای دیگر، با روش contains ، در برنامه نویسی اندروید
  20. تبدیل تمامی حرف های یک رشته (String)، به حرف های بزرگ یا حرف های کوچک، با روش های toLowerCase و toUpperCase ، در برنامه نویسی اندروید
  21. تبدیل یک رشته (String) به تعدادی رشته، بر اساس وجود یک علامت در آن، با روش split ، در برنامه نویسی اندروید
  22. ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید
  23. تعیین تعداد خط های یک TextView ، در برنامه نویسی اندروید
  24. برداشتن محدودیت تعداد خطوط یک TextView ، در برنامه نویسی اندروید
  25. تعیین حداکثر تعداد خطوط یک TextView ، با روش setMaxLines ، در برنامه نویسی اندروید
  26. نمایش حاصل اجرای کدهای HTML ، در یک TextView ، در برنامه نویسی اندروید
  27. تبدیل خودکار آدرس های اینترنتی (URL) موجود در متن نمایش داده شده در یک TextView ، به لینک (link)، در برنامه نویسی اندروید
  28. حرکت کردن متن در یک TextView، از سمت راست به چپ، با استفاده از مشخصه های TextView ، در برنامه نویسی اندروید
  29. حرکت کردن متن در یک TextView ، از سمت راست به چپ و یا از سمت چپ به راست، با استفاده از Animation ، در برنامه نویسی اندروید
  30. تبدیل یک رشته (String) به آرایه ای از کاراکترها (char Array)، در برنامه نویسی اندروید
  31. به دست آوردن قسمت آخر (به صورت یک زیررشته) از یک رشته (String) که بعد از آخرین تکرار از یک علامت خاص (مثلا نقطه) تا انتهای رشته، نوشته شده است، در برنامه نویسی اندروید
  32. حذف کردن چند کاراکتر اول یک رشته (String)، در برنامه نویسی اندروید
  33. حذف کردن چند کاراکتر آخر یک رشته (String)، در برنامه نویسی اندروید
  34. تبدیل آرایه ای از جنس بایت (Byte Array) (یعنی byte[]) به یک رشته (String)، در برنامه نویسی اندروید
  35. تبدیل یک رشته (String) به آرایه ای از جنس بایت (Byte Array) (یعنی byte[])، در برنامه نویسی اندروید
  36. ساخت یک رشته (String) با کاراکترهای تصادفی (ساخت یک رشته تصادفی با طول مشخص)، در برنامه نویسی اندروید

منبع: kelidestan.com
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ارجاع به id یک TextView ، با تعریف رشته (string)، در برنامه نویسی اندروید

ارجاع به id یک TextView ، با تعریف رشته (string)، در برنامه نویسی اندروید

معمولا به id یک TextView به صورت زیر ارجاع داده می شود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]myTextView[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، myTextView ، همان id تعریف شده برای TextView می باشد.

اما گاهی نیاز داریم که ارجاع به id برای TextView به گونه ای باشد که بتوانیم با استفاده از رشته های (string) مورد نظرمان، id را بسازیم، تا آزادی عمل بیشتری داشته باشیم.

برای این منظور، id برای TextView را به صورت زیر تعریف می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] textId [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myTextView"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] resID [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR][COLOR=#009900]([/COLOR]textId , [COLOR=#0000FF]"id"[/COLOR], getPackageName[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]resID[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
و یا به شکل زیر (شکل دوم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] textId [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myTextView"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] resID [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR][COLOR=#009900]([/COLOR]textId , [COLOR=#0000FF]"id"[/COLOR], [COLOR=#0000FF]"package.name"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]resID[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، "package.name" ، نام package برنامه اندروید مورد نظر ما می باشد.

همچنین در هنگام تعریف یک متن جدید برای TextView نیز می توان از این روش استفاده نمود. به کدهای زیر توجه کنید، این کدها روش عادی برای تعیین id مربوط به عکسی است که می خواهیم در TextView نمایش داده شود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]myTextView[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]string[/COLOR].[COLOR=#006633]my_text[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، myTextView ، همان id تعریف شده برای TextView می باشد و my_text ، یک رشته (string) می باشد که در فایل strings.xml تعریف شده است.

به جای کدهای بالا، می توانیم از کدهای زیر استفاده کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]myTextView[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] textName [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"my_text"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] resID [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR][COLOR=#009900]([/COLOR]textName, [COLOR=#0000FF]"string"[/COLOR], getPackageName[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]resID[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
و یا به شکل زیر (شکل دوم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]myTextView[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] textName [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"my_text"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] resID [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR][COLOR=#009900]([/COLOR]textName, [COLOR=#0000FF]"string"[/COLOR], [COLOR=#0000FF]"package.name"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]resID[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، "package.name" ، نام package برنامه اندروید مورد نظر ما می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نمایش یک متن، در یک TextView ، در برنامه نویسی اندروید

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

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

[h=2]روش اول : تعیین متن مورد نظر برای نمایش در TextView ، در فایل xml[/h]برای تعیین متن مورد نظر برای نمایش در TextView ، باید درون فایل xml ای که در آن، TextView تعریف شده است، کد زیر را به کدهای تعریف TextView اضافه کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"متن مورد نظر شما"[/COLOR][/FONT]
[/FONT][/COLOR]
در این روش، می توانیم متن فارسی مورد نظرمان را به طور مستقیم، درون فایل xml بنویسیم.

معمولا توصیه می شود که متن های مورد نظرمان را به صورت رشته (string) در فایل strings.xml تعریف کنیم و سپس آن را به صورت یک رشته (string) از فایل strings.xml فراخوانی کنیم. مثلا فرض کنید که متن را به صورت یک رشته (string) و با نام myString ، در فایل strings.xml تعریف کرده ایم، اکنون برای اینکه در فایل xml و در میان کدهای مربوط به تعریف عنصر TextView ، به متن مورد نظر، ارجاع بدهیم، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@string/myString"[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]روش دوم : تعیین متن مورد نظر برای نمایش در TextView ، با کدنویسی درون فایل java[/h]اگر بخواهیم که متن مورد نظرمان برای نمایش در TextView را با کدهای java تعیین کنیم، باید در فایل java (یعنی در میان کدهای Activity مورد نظر)، کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"My Text"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کد بالا، id مربوط به TextView را برابر textView1 در نظر گرفته ایم.دقت داشته باشید که درون فایل java ، نمی توانیم متن فارسی بنویسیم، بنابراین اگر متن مورد نظرمان فارسی است، باید آن را در فایل strings.xml تعریف کرده و سپس مقدار آن را از آن فایل دریافت کنیم و با روش setText ، در TextView نمایش بدهیم. مثلا فرض کنید که متن مورد نظرمان را در فایل strings.xml و با نام myString تعریف کرده ایم، اکنون برای نمایش آن در TextView ، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#003399]String[/COLOR] stringName [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myString"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] resID [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR][COLOR=#009900]([/COLOR]stringName,[COLOR=#0000FF]"string"[/COLOR],getPackageName[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] stringToShow [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getString[/COLOR][COLOR=#009900]([/COLOR]resID[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]stringToShow[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

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

تعیین اندازه فونت متن، در یک TextView ، در برنامه نویسی اندروید

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

[h=2]روش اول : تعیین اندازه فونت متن در TextView ، در فایل xml[/h]برای تعیین اندازه فونت متن در TextView ، باید درون فایل xml ای که در آن، TextView تعریف شده است، کد زیر را به کدهای تعریف TextView اضافه کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]textSize[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"20sp"[/COLOR][/FONT]
[/FONT][/COLOR]
اندازه فونت متن را باید بر جسب sp بنویسیم (البته آن را بر حسب dp نیز می توان نوشت، ولی معمولا توصیه می شود که بر حسب sp باشد. اگر واحد sp را انتخاب کرده باشیم، چنانچه کاربر تنظیمات کلی گوشی خود که مربوط به اندازه فونت است را تغییر بدهد، اندازه فونت در برنامه اندروید نیز تغییر می کند، بنابراین انتخاب sp ، به نوعی احترام به تصمیم کاربر برای اندازه فونت های برنامه ها می باشد، مثلا فردی را تصور کنید که چشمانش مشکل دارد و مجبور است که تنظیمات گوشی را تغییر بدهد تا فونت تمامی برنامه ها، بزرگتر نمایش داده شود).

[h=2]روش دوم : تعیین اندازه فونت متن در TextView ، با کدنویسی درون فایل java[/h]اگر بخواهیم که اندازه فونت متن در TextView را با کدهای java تعیین کنیم، باید در فایل java (یعنی در میان کدهای Activity مورد نظر)، کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setTextSize[/COLOR][COLOR=#009900]([/COLOR]TypedValue.[COLOR=#006633]COMPLEX_UNIT_SP[/COLOR], [COLOR=#CC66CC]30[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کد بالا، id مربوط به TextView را برابر textView1 در نظر گرفته ایم. درون پرانتز روش setTextSize ، ابتدا تعیین کرده ایم که واحد اندازه فونت، برابر sp باشد (معمولا واحد sp توصیه می شود)، سپس مقدار 30 را برای آن در نظر گرفته ایم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تفاوت بین واحد sp و واحد dp ، برای اندازه فونت متن ها، در برنامه نویسی اندروید

تفاوت بین واحد sp و واحد dp ، برای اندازه فونت متن ها، در برنامه نویسی اندروید

حتما تاکنون مشاهده کرده اید که واحدهای sp و dp برای تعیین اندازه فونت متن ها، در برنامه نویسی اندروید، به کار می روند. مثلا به دو صورت زیر :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]textSize[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"20sp"[/COLOR]

یا

android[COLOR=#339933]:[/COLOR]textSize[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"20dp"[/COLOR][/FONT]
[/FONT][/COLOR]
هر دو واحد sp و dp ، بر اساس اندازه صفحه نمایش (physical density of the screen) گوشی کاربر، تنظیم می شوند، اما این دو واحد، با یکدیگر، یک تفاوت مهم دارند و آن این است که واحد sp ، علاوه بر وابستگی به اندازه صفحه نمایش (physical density of the screen) گوشی کاربر، به تنظیمات تعیین شده توسط کاربر در گوشی وی نیز وابسته می باشد. همان طور که می دانید، کاربران می توانند در گوشی اندروید خود، تنظیماتی را در مورد اندازه فونت متن ها، تغییر بدهند. اگر شما واحد dp را برای اندازه فونت ها انتخاب کرده باشید، این تنظیمات، در نمایش متن ها در برنامه شما، بی اثر خواهد بود، اما اگر واحد sp را انتخاب کرده باشید، این تنظیمات، بر روی اندازه نمایش فونت متن ها در برنامه شما، تاثیر خواهند داشت.


معمولا توصیه می شود که برای تعیین اندازه فونت متن ها، از واحد sp استفاده کنیم، زیرا بسیاری از افراد، دارای سلایق شخصی برای نمایش اندازه فونت ها می باشند یا مثلا خیلی از افراد، به دلیل مشکل بینایی، تنها متن های دارای فونت خیلی بزرگ را می توانند بخوانند. بنابراین مجبور کردن کاربران به خواندن متن ها، در یک اندازه مشخص، می تواند برای آنها آزاردهنده باشد و بنابراین، واحد sp ، انتخاب مناسب تری می باشد.
توصیه کلی برنامه نویسان اندروید این است که برای هر بخشی از برنامه، به جز اندازه فونت متن ها، از واحد dp استفاده کنیم و تنها برای تعیین اندازه فونت متن ها، واحد sp را به کار ببریم.
dp دارای نام دیگر dip و مخفف Density-independent Pixels است و sp مخفف Scale-independent Pixels می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تعیین رنگ متن TextView ، در برنامه نویسی اندروید

تعیین رنگ متن TextView ، در برنامه نویسی اندروید

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

روش اول : تعیین رنگ متن در فایل xml

در هنگام تعریف TextView در فایل xml ، در همان زمان می توانیم برای TextView ، مشخصه ای را، برای رنگ نمایش متن آن، تعیین کنیم. برای این منظور، باید کد زیر را در میان کدهای مربوط به TextView قرار دهیم (می توانید رنگ را به دلخواه تغییر دهید) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]textColor[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"#FF0000"[/COLOR][/FONT]
[/FONT][/COLOR]
روش دوم : تعیین رنگ متن با کدنویسی درون فایل java

ممکن است که نیاز داشته باشیم، در میانه های اجرای برنامه اندروید، رنگ متن درون TextView تغییر داده شود (یا اینکه اصلا بخواهیم توسط کدنویسی در فایل java رنگ را تعیین کنیم). برای این منظور، فرض کنید که TextView دارای نام myTextView باشد، بنابراین باید کد زیر را درون فایل java بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myTextView.[COLOR=#006633]setTextColor[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]Color[/COLOR].[COLOR=#006633]RED[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
کد بالا باعث می شود که متن درون TextView ، به رنگ قرمز نمایش داده شود.

اگر کد مربوط به رنگ را داشته باشید (مثلا #FF0000 برای رنگ قرمز)، آنگاه به شیوه زیر نیز می توان کد نوشت :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myTextView.[COLOR=#006633]setTextColor[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]Color[/COLOR].[COLOR=#006633]parseColor[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"#FF0000"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اگر کد rgb را داشته باشیم که شامل 3 عدد است، آنگاه باید کدها را به صورت زیر بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myTextView.[COLOR=#006633]setTextColor[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]Color[/COLOR].[COLOR=#006633]rgb[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]200[/COLOR],[COLOR=#CC66CC]0[/COLOR],[COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
جدول رنگ ها :

کد مربوط به رنگ دلخواه خود را می توانید در جدول زیر بیابید :
#000000#000033#000066#000099#0000CC#0000FF
#003300#003333#003366#003399#0033CC#0033FF
#006600#006633#006666#006699#0066CC#0066FF
#009900#009933#009966#009999#0099CC#0099FF
#00CC00#00CC33#00CC66#00CC99#00CCCC#00CCFF
#00FF00#00FF33#00FF66#00FF99#00FFCC#00FFFF
#330000#330033#330066#330099#3300CC#3300FF
#333300#333333#333366#333399#3333CC#3333FF
#336600#336633#336666#336699#3366CC#3366FF
#339900#339933#339966#339999#3399CC#3399FF
#33CC00#33CC33#33CC66#33CC99#33CCCC#33CCFF
#33FF00#33FF33#33FF66#33FF99#33FFCC#33FFFF
#660000#660033#660066#660099#6600CC#6600FF
#663300#663333#663366#663399#6633CC#6633FF
#666600#666633#666666#666699#6666CC#6666FF
#669900#669933#669966#669999#6699CC#6699FF
#66CC00#66CC33#66CC66#66CC99#66CCCC#66CCFF
#66FF00#66FF33#66FF66#66FF99#66FFCC#66FFFF
#990000#990033#990066#990099#9900CC#9900FF
#993300#993333#993366#993399#9933CC#9933FF
#996600#996633#996666#996699#9966CC#9966FF
#999900#999933#999966#999999#9999CC#9999FF
#99CC00#99CC33#99CC66#99CC99#99CCCC#99CCFF
#99FF00#99FF33#99FF66#99FF99#99FFCC#99FFFF
#CC0000#CC0033#CC0066#CC0099#CC00CC#CC00FF
#CC3300#CC3333#CC3366#CC3399#CC33CC#CC33FF
#CC6600#CC6633#CC6666#CC6699#CC66CC#CC66FF
#CC9900#CC9933#CC9966#CC9999#CC99CC#CC99FF
#CCCC00#CCCC33#CCCC66#CCCC99#CCCCCC#CCCCFF
#CCFF00#CCFF33#CCFF66#CCFF99#CCFFCC#CCFFFF
#FF0000#FF0033#FF0066#FF0099#FF00CC#FF00FF
#FF3300#FF3333#FF3366#FF3399#FF33CC#FF33FF
#FF6600#FF6633#FF6666#FF6699#FF66CC#FF66FF
#FF9900#FF9933#FF9966#FF9999#FF99CC#FF99FF
#FFCC00#FFCC33#FFCC66#FFCC99#FFCCCC#FFCCFF
#FFFF00#FFFF33#FFFF66#FFFF99#FFFFCC#FFFFFF
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
راست چین، چپ چین و یا وسط چین کردن متن در TextView ، در برنامه نویسی اندروید

راست چین، چپ چین و یا وسط چین کردن متن در TextView ، در برنامه نویسی اندروید

برای راست چین، چپ چین و یا وسط چین کردن متن در یک TextView ، دو روش را می توان به کار برد :

1- با نوشتن مشخصه هایی در فایل xml (لایه گرافیکی متناظر با Activity) در تگ مربوط به عنصر TextView

2- با نوشتن کدهای java در فایل java مربوط به Activity

روش اول : با نوشتن مشخصه هایی در فایل xml (لایه گرافیکی متناظر با Activity) در تگ مربوط به عنصر TextView

فایل xml را باز کرده و تگ مربوط به TextView مورد نظرمان را پیدا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace] [COLOR=#339933]<[/COLOR]TextView
    android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/textView1"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
    android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"TextView"[/COLOR] [COLOR=#339933]/>[/COLOR][/FONT]
[/FONT][/COLOR]
قبل از هر چیز، بهتر است که دو مشخصه را معرفی کنیم :

مشخصه gravity : برای تعیین چگونگی قراگیری متن در خود فضای TextView به کار می رود

مشخصه layout_gravity : برای تعیین چگونگی قرارگیری عنصر TextView در لایه گرافیکی (نسبت به خود لایه و سایر عنصرهای لایه) به کار می رود

اکنون چگونگی استفاده از آنها را شرح می دهیم :

ابتدا بررسی می کنیم که مشخصه مربوط به عرض عنصر TextView به گونه ای باشد که کل عرض ممکن را بپوشاند :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR][/FONT]
[/FONT][/COLOR]
مثلا در مشخصه بالا، اگر به جای match_parent ، مقدار wrap_content قرار داده شود و همچنین طول متن، کمتر از یک خط (بخشی از یک خط) باشد، آنگاه مشخص gravity نمی تواند محل متن را تغییر بدهد (محل متن به صورت کلی و آنگونه که می بینیم) و باید با مشخصه layout_gravity ، خود عنصر TextView را هم جابجا کنیم. یعنی در این حالت، باید هر دو مشخصه به کار روند.

بنابراین اگر TextView ، کل عرض صفحه را بپوشاند، برای وسط چین کردن متن در TextView ، باید مشخصه زیر را اضافه کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]gravity[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"center"[/COLOR][/FONT]
[/FONT][/COLOR]
یعنی کل کدهای تگ TextView به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]TextView
    android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/textView1"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
    android[COLOR=#339933]:[/COLOR]gravity[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"center"[/COLOR]
    android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"TextView"[/COLOR] [COLOR=#339933]/>[/COLOR][/FONT]
[/FONT][/COLOR]
برای چپ چین کردن متن، مشخصه را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]gravity[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"left"[/COLOR][/FONT]
[/FONT][/COLOR]
برای راست چین کردن متن، مشخصه را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]gravity[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"right"[/COLOR][/FONT]
[/FONT][/COLOR]
نکته :

همان طور که تذکر دادیم، اگر مشخصه layout_width برابر wrap_content تعیین شده باشد و متن نیز کمتر از یک خط باشد (مثلا 2 یا 3 کلمه)، اندازه عرض عنصر TextView ، برابر طول متن می باشد، بنابراین دیگر نمی توانیم با مشخصه gravity ، متن را در یک سمت دلخواه از کل عرض TextView قرار بدهیم (جدا از جهت چیدمان متن)، زیرا متن، کل عرض TextView را پوشانده است. در این مواقع، باید خود عنصر TextView را هم جابجا کنیم. به عنوان یک مثال :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]TextView
    android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/textView1"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_gravity[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"right"[/COLOR]
    android[COLOR=#339933]:[/COLOR]gravity[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"right"[/COLOR]
    android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"TextView"[/COLOR] [COLOR=#339933]/>[/COLOR][/FONT]
[/FONT][/COLOR]
نکته :

برای دیدن تمامی گزینه های قابل انتخاب برای یک مشخصه، عبارت بین دو علامت " برای آن مشخصه را حذف کرده و نشانگر موس را بین دو علامت " قرار داده و کلیدهای Ctrl و Space از کیبورد را به صورت همزمان فشار دهید :1457.jpg
روش دوم : با نوشتن کدهای java در فایل java مربوط به Activity

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

ابتدا عنصر را شناسایی کرده و سپس، با روش setGravity ، چگونگی چیدمان متن در خود فضای TextView را تعیین می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setGravity[/COLOR][COLOR=#009900]([/COLOR]Gravity.[COLOR=#006633]CENTER_HORIZONTAL[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
مشخصه را برابر CENTER_HORIZONTAL تعیین کرده ایم. برای دیدن همه گزینه های قابل انتخاب، عبارت CENTER_HORIZONTAL را حذف کنید و نشانگر موس را بعد از علامت نقطه قرار داده و کلیدهای Ctrl و Space از کیبورد را به صورت همزمان فشار دهید :1456.jpg
برای مشخصه layout_gravity :

ابتدا عنصر را شناسایی کرده و سپس، با روش setLayoutParams ، چگونگی قرارگیری خود TextView در لایه گرافیکی (نسبت به لایه و سایر عناصر) را تعیین می کنیم (فرض کرده ایم که عنصر در لایه ای از نوع LinearLayout قرار گرفته است) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
LinearLayout.[COLOR=#006633]LayoutParams[/COLOR] params [COLOR=#339933]=[/COLOR] [B]new[/B] LinearLayout.[COLOR=#006633]LayoutParams[/COLOR][COLOR=#009900]([/COLOR]LayoutParams.[COLOR=#006633]WRAP_CONTENT[/COLOR], LayoutParams.[COLOR=#006633]WRAP_CONTENT[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
params.[COLOR=#006633]gravity[/COLOR] [COLOR=#339933]=[/COLOR] Gravity.[COLOR=#006633]RIGHT[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setLayoutParams[/COLOR][COLOR=#009900]([/COLOR]params[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
مشخصه را برابر RIGHT تعیین کرده ایم. برای دیدن همه گزینه های قابل انتخاب، عبارت RIGHT را حذف کنید و نشانگر موس را بعد از علامت نقطه قرار داده و کلیدهای Ctrl و Space از کیبورد را به صورت همزمان فشار دهید :

1455.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تعیین فونت (font) دلخواه برای متن نمایش داده شده در یک TextView ، در برنامه نویسی اندروید

تعیین فونت (font) دلخواه برای متن نمایش داده شده در یک TextView ، در برنامه نویسی اندروید

چنانچه بخواهیم که یک فونت (font) دلخواه را برای متن نمایش داده شده در یک TextView انتخاب کنیم، باید ابتدا فایل با پسوند ttf مربوط به آن فونت را در پوشه assets از پروژه اندروید، کپی کنیم. مثلا فرض کنید که من یک فایل مربوط به فونت دست نویس (فونتی که به شکل دست نویس می باشد)، با نام Dast_Nevis.ttf دارم و می خواهم از آن، برای نمایش متن در یک TextView استفاده کنم. ابتدا یک پوشه (folder) با نام fonts در پوشه assets از پروژه اندروید می سازم و فایل Dast_Nevis.ttf را در آن کپی می کنم :


android-316.jpg

حال با فرض اینکه TextView را با id برابر textView1 تعریف کرده باشیم، در میان کدهای Activity ، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
Typeface tf [COLOR=#339933]=[/COLOR] Typeface.[COLOR=#006633]createFromAsset[/COLOR][COLOR=#009900]([/COLOR]getAssets[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR],[COLOR=#0000FF]"fonts/Dast_Nevis.ttf"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR] 
tv.[COLOR=#006633]setTypeface[/COLOR][COLOR=#009900]([/COLOR]tf[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون می توانید متن دلخواهی را برای نمایش در TextView تعیین کنید، مثلا برای این فونتی که من انتخاب کردم، حتما باید یک متن فارسی را در TextView نمایش بدهم تا فونت مورد نظر، به کار رود. به عنوان مثال، یک نمونه از نتیجه، به صورت زیر می باشد :

android-317.jpg


در ضمن، اگر این فونت را دوست داشته اید، من فایل های مربوط به آن را برایتان در زیر می گذارم تا دانلود کنید (دقت کنید که علاوه بر فایل با پسوند ttf ، دو فایل دیگر با پسوندهای دیگر را هم گذاشته ام که برای مواردی است که می خواهید در طراحی وب استفاده کنید، نه در برنامه نویسی اندروید، زیرا در طراحی وب، معمولا نیاز به سه نوع فایل مورد نظر است) :
دانلود فایل های فونت دست نویس
 

پیوست ها

  • 138.zip
    56.7 کیلوبایت · بازدیدها: 0

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
رفتن به خط جدید در هنگام تعریف یک رشته (string) در برنامه اندروید

رفتن به خط جدید در هنگام تعریف یک رشته (string) در برنامه اندروید

چنانچه در هنگام تعریف یک رشته (string) در برنامه اندروید، بخواهیم که بقیه متن رشته در خط جدید نوشته شود، باید از علامت \n استفاده کنیم.

برای درک این موضوع، کدهای زیر را مشاهده کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] str [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"first string [COLOR=#000099][B]\n[/B][/COLOR] second string"[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
عبارت first string ، در یک خط و عبارت second string ، در خطی دیگر نمایش داده می شود.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
دریافت یک رشته (string) از فایل strings.xml ، در برنامه نویسی اندروید

دریافت یک رشته (string) از فایل strings.xml ، در برنامه نویسی اندروید

فرض کنید، در فایل strings.xml ، یک رشته (string) با نام my_text تعریف کرده ایم. برای اینکه بتوانیم این رشته را از فایل strings.xml ، فراخوانی کرده و استفاده نماییم، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] my_string [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getString[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]string[/COLOR].[COLOR=#006633]my_text[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کد بالا، رشته را از فایل strings.xml فراخوانی کرده و سپس در متغیری به نام my_string ذخیره کرده ایم که از این به بعد، می توان از آن استفاده نمود.

علاوه بر این، یک روش انعطاف پذیرتر نیز وجود دارد که کدهای آن به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] stringName [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"name_of_string"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] resID [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR][COLOR=#009900]([/COLOR]stringName,[COLOR=#0000FF]"string"[/COLOR],getPackageName[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] my_string [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getString[/COLOR][COLOR=#009900]([/COLOR]resID[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
خواندن یک رشته (Strings) از فایل strings.xml تنها در صورتی که رشته مورد نظر در فایل strings.xml تعریف شده باشد

خواندن یک رشته (Strings) از فایل strings.xml تنها در صورتی که رشته مورد نظر در فایل strings.xml تعریف شده باشد

خواندن یک رشته (Strings) از فایل strings.xml ،
تنها در صورتی که رشته مورد نظر در فایل strings.xml تعریف شده باشد،
در برنامه نویسی اندروید :

قبلا، چگونگی خواندن یک رشته (Strings) از فایل strings.xml را شرح دادیم، اما ممکن است که اطمینان نداشته باشیم که آیا رشته ای با آن نام در فایل strings.xml وجود دارد یا خیر. در این مواقع، می توانیم وجود رشته در فایل strings.xml را چک کنیم. برای این منظور، کدهای فراخوانی را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000066][B]int[/B][/COLOR] identifier [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getIdentifier[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#0000FF]"string_name"[/COLOR],[COLOR=#0000FF]"string"[/COLOR],[COLOR=#0000FF]"your.package.name"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]if[/B] [COLOR=#009900]([/COLOR]identifier[COLOR=#339933]!=[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#003399]String[/COLOR] str [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getString[/COLOR][COLOR=#009900]([/COLOR]identifier[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR][B]else[/B][COLOR=#009900]{[/COLOR]
    [COLOR=#003399]String[/COLOR] str [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]""[/COLOR][COLOR=#339933];[/COLOR] 
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
که در کد بالا، باید به جای string_name ، نام رشته مورد نظر خود و به جای your.package.name ، نام package برنامه اندروید خود را بنویسید.
 

P O U R I A

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

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

به دست آوردن نام تمامی رشته های (Strings) تعریف شده در فایل strings.xml در پروژه اندروید، به صورت یک آرایه (Array) از جنس رشته (String)،
در برنامه نویسی اندروید :


با استفاده از کد زیر می توانیم نام تمامی رشته های (Strings) تعریف شده در فایل strings.xml در پروژه اندروید را به صورت یک آرایه (Array) از جنس رشته (String)، به دست آوریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]Field[/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] fields [COLOR=#339933]=[/COLOR] R.[COLOR=#006633]string[/COLOR].[B]class[/B].[COLOR=#006633]getFields[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] allStringsNames [COLOR=#339933]=[/COLOR] [B]new[/B] [COLOR=#003399]String[/COLOR][COLOR=#009900][[/COLOR]fields.[COLOR=#006633]length[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
[B]for[/B] [COLOR=#009900]([/COLOR][COLOR=#000066][B]int[/B][/COLOR]  i [COLOR=#339933]=[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#339933];[/COLOR] i [COLOR=#339933]<[/COLOR] fields.[COLOR=#006633]length[/COLOR][COLOR=#339933];[/COLOR] i[COLOR=#339933]++[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]           
    allStringsNames[COLOR=#009900][[/COLOR]i[COLOR=#009900]][/COLOR] [COLOR=#339933]=[/COLOR] fields[COLOR=#009900][[/COLOR]i[COLOR=#009900]][/COLOR].[COLOR=#006633]getName[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین نام تمامی رشته های (Strings) تعریف شده در فایل strings.xml در پروژه اندروید را در آرایه ای با نام allStringsNames خواهیم داشت.

دقت شود که برای استفاده از کد بالا، package زیر را وارد (import) می کنیم (دستور کامل import را نوشته ایم) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]import[/B] [COLOR=#006699]java.lang.reflect.Field[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تعریف آرایه ای از رشته ها (string array) در فایل strings.xml ، در برنامه نویسی اندروید

تعریف آرایه ای از رشته ها (string array) در فایل strings.xml ، در برنامه نویسی اندروید

همان طور که می دانید، در فایل strings.xml از پروژه اندروید، رشته های (strings) مورد نیازمان برای برنامه اندروید را تعریف می کنیم. معمولا تعریف یک رشته در فایل strings.xml با کدهای زیر می باشد که درون فایل strings.xml می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_1"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]1[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، number_1 برابر نام رشته و عبارت string number 1 نیز محتوای رشته (کاراکترهای رشته) می باشد. ما توسط نام رشته، به آن ارجاع می دهیم.

اما گاهی نیاز داریم که آرایه ای از رشته ها (string array) را در فایل strings.xml تعریف کنیم. مثلا فرض کنید که بخواهیم آرایه ای از رشته ها، شامل 3 رشته را در فایل strings.xml تعریف کنیم، برای این منظور، کدهای زیر را در فایل strings.xml می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_1"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]1[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_2"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]2[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_3"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]3[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]string[COLOR=#339933]-[/COLOR]array name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"string_array_1"[/COLOR][COLOR=#339933]>[/COLOR]
    [COLOR=#339933]<[/COLOR]item[COLOR=#339933]>[/COLOR]@string[COLOR=#339933]/[/COLOR]number_1[COLOR=#339933]</[/COLOR]item[COLOR=#339933]>[/COLOR]
    [COLOR=#339933]<[/COLOR]item[COLOR=#339933]>[/COLOR]@string[COLOR=#339933]/[/COLOR]number_2[COLOR=#339933]</[/COLOR]item[COLOR=#339933]>[/COLOR]
    [COLOR=#339933]<[/COLOR]item[COLOR=#339933]>[/COLOR]@string[COLOR=#339933]/[/COLOR]number_3[COLOR=#339933]</[/COLOR]item[COLOR=#339933]>[/COLOR]       
[COLOR=#339933]</[/COLOR]string[COLOR=#339933]-[/COLOR]array[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
که در آن، نام آرایه شامل رشته ها، برابر string_array_1 می باشد. نکته مهم این است که ما ابتدا 3 رشته را به صورت معمولی تعریف کرده ایم و سپس در آرایه شامل رشته ها، به آنها ارجاع داده ایم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
دریافت یک آرایه رشته ای (string array) تعریف شده در فایل strings.xml و ذخیره آن در یک متغیر، در برنامه نویسی اندروید

دریافت یک آرایه رشته ای (string array) تعریف شده در فایل strings.xml و ذخیره آن در یک متغیر، در برنامه نویسی اندروید

فرض کنید که در فایل strings.xml ، یک آرایه رشته ای با نام string_array_1 ، به صورت زیر تعریف کرده ایم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_1"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]1[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_2"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]2[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]string name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"number_3"[/COLOR][COLOR=#339933]>[/COLOR]string number [COLOR=#CC66CC]3[/COLOR][COLOR=#339933]</[/COLOR]string[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]string[COLOR=#339933]-[/COLOR]array name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"string_array_1"[/COLOR][COLOR=#339933]>[/COLOR]
     [COLOR=#339933]<[/COLOR]item[COLOR=#339933]>[/COLOR]@string[COLOR=#339933]/[/COLOR]number_1[COLOR=#339933]</[/COLOR]item[COLOR=#339933]>[/COLOR]
     [COLOR=#339933]<[/COLOR]item[COLOR=#339933]>[/COLOR]@string[COLOR=#339933]/[/COLOR]number_2[COLOR=#339933]</[/COLOR]item[COLOR=#339933]>[/COLOR]
     [COLOR=#339933]<[/COLOR]item[COLOR=#339933]>[/COLOR]@string[COLOR=#339933]/[/COLOR]number_3[COLOR=#339933]</[/COLOR]item[COLOR=#339933]>[/COLOR]       
[COLOR=#339933]</[/COLOR]string[COLOR=#339933]-[/COLOR]array[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون برای دریافت آرایه رشته ای string_array_1 و ذخیره آن در یک متغیر، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] my_string [COLOR=#339933]=[/COLOR] getResources[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]getStringArray[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]array[/COLOR].[COLOR=#006633]string_array_1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین اکنون یک متغیر با نام my_string داریم که به صورت آرایه ای از رشته ها (string array) است و می توانیم رشته های (strings) مورد نظرمان را از آن فراخوانی کنیم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تغییر رنگ پس زمینه TextView ، در برنامه نویسی اندروید

تغییر رنگ پس زمینه TextView ، در برنامه نویسی اندروید

برای تغییر رنگ پس زمینه یک TextView ، باید در فایل xml و درون کدهای مربوط به تعریف TextView ، کد زیر را اضافه کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]background[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"#00FF00"[/COLOR][/FONT]
[/FONT][/COLOR]
جدول رنگ ها :

کد مربوط به رنگ دلخواه خود را می توانید در جدول زیر بیابید :


#000000#000033#000066#000099#0000CC#0000FF
#003300#003333#003366#003399#0033CC#0033FF
#006600#006633#006666#006699#0066CC#0066FF
#009900#009933#009966#009999#0099CC#0099FF
#00CC00#00CC33#00CC66#00CC99#00CCCC#00CCFF
#00FF00#00FF33#00FF66#00FF99#00FFCC#00FFFF
#330000#330033#330066#330099#3300CC#3300FF
#333300#333333#333366#333399#3333CC#3333FF
#336600#336633#336666#336699#3366CC#3366FF
#339900#339933#339966#339999#3399CC#3399FF
#33CC00#33CC33#33CC66#33CC99#33CCCC#33CCFF
#33FF00#33FF33#33FF66#33FF99#33FFCC#33FFFF
#660000#660033#660066#660099#6600CC#6600FF
#663300#663333#663366#663399#6633CC#6633FF
#666600#666633#666666#666699#6666CC#6666FF
#669900#669933#669966#669999#6699CC#6699FF
#66CC00#66CC33#66CC66#66CC99#66CCCC#66CCFF
#66FF00#66FF33#66FF66#66FF99#66FFCC#66FFFF
#990000#990033#990066#990099#9900CC#9900FF
#993300#993333#993366#993399#9933CC#9933FF
#996600#996633#996666#996699#9966CC#9966FF
#999900#999933#999966#999999#9999CC#9999FF
#99CC00#99CC33#99CC66#99CC99#99CCCC#99CCFF
#99FF00#99FF33#99FF66#99FF99#99FFCC#99FFFF
#CC0000#CC0033#CC0066#CC0099#CC00CC#CC00FF
#CC3300#CC3333#CC3366#CC3399#CC33CC#CC33FF
#CC6600#CC6633#CC6666#CC6699#CC66CC#CC66FF
#CC9900#CC9933#CC9966#CC9999#CC99CC#CC99FF
#CCCC00#CCCC33#CCCC66#CCCC99#CCCCCC#CCCCFF
#CCFF00#CCFF33#CCFF66#CCFF99#CCFFCC#CCFFFF
#FF0000#FF0033#FF0066#FF0099#FF00CC#FF00FF
#FF3300#FF3333#FF3366#FF3399#FF33CC#FF33FF
#FF6600#FF6633#FF6666#FF6699#FF66CC#FF66FF
#FF9900#FF9933#FF9966#FF9999#FF99CC#FF99FF
#FFCC00#FFCC33#FFCC66#FFCC99#FFCCCC#FFCCFF
#FFFF00#FFFF33#FFFF66#FFFF99#FFFFCC#FFFFFF
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ایجاد فاصله بین متن و لبه های TextView ، در برنامه نویسی اندروید

ایجاد فاصله بین متن و لبه های TextView ، در برنامه نویسی اندروید

برای ایجاد فاصله بین متن و لبه های TextView (یعنی تعیین padding)، به دو روش می توان عمل کرد که آنها را در ادامه شرح می دهیم.

[h=2]روش اول : ایجاد فاصله بین متن و لبه های TextView در فایل xml[/h]برای ایجاد فاصله بین متن و لبه های TextView ، باید درون فایل xml ای که در آن TextView تعریف شده است، کد زیر را به کدهای تعریف TextView اضافه کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]padding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"5dp"[/COLOR][/FONT]
[/FONT][/COLOR]
مقدار مورد نظرتان برای فاصله متن تا لبه های TextView را باید بر حسب dp در کد بالا بنویسید.

کد قبل، مقدار حاشیه بین متن و لبه های TextView را در هر 4 جهت مختصات مشخص کرده است، اگر بخواهیم که این مقدار حاشیه، در یک یا چند جهت مشخص در نظر گرفته شود، می توانیم از 4 مشخصه زیر استفاده کنیم (به دلخواه، یک یا چند تا از آنها را می توان به کار برد) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]android[COLOR=#339933]:[/COLOR]paddingLeft[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"5dp"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingTop[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"5dp"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingRight[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"5dp"[/COLOR]
android[COLOR=#339933]:[/COLOR]paddingBottom[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"5dp"[/COLOR][/FONT]
[/FONT][/COLOR]
[h=2]روش دوم : ایجاد فاصله بین متن و لبه های TextView با کدنویسی درون فایل java[/h]اگر بخواهیم که مقدار فاصله بین متن و لبه های TextView را با کدهای java تعیین کنیم، باید در فایل java (یعنی در میان کدهای Activity مورد نظر)، کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setPadding[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]20[/COLOR], [COLOR=#CC66CC]5[/COLOR], [COLOR=#CC66CC]0[/COLOR], [COLOR=#CC66CC]5[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کد بالا، id مربوط به TextView را برابر textView1 در نظر گرفته ایم. درون پرانتز روش setPadding ، چهار عدد نوشته ایم که میزان فاصله را در 4 جهت مختصات، مشخص می کنند.

ترتیب جهت ها در روش setPadding ، به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]setPadding[COLOR=#009900]([/COLOR]left, top, right, bottom[COLOR=#009900])[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
چک کردن مقدار یک رشته (string)، با equals ، در برنامه نویسی اندروید

چک کردن مقدار یک رشته (string)، با equals ، در برنامه نویسی اندروید

یکی از اشتباهات رایج برنامه نویسی اندروید، چک کردن مقدار یک رشته (string) با شیوه اشتباه زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]if[/B][COLOR=#009900]([/COLOR]myString[COLOR=#339933]==[/COLOR][COLOR=#0000FF]"string_to_check"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// some commands[/I][/COLOR]
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
کد بالا غلط است و باعث ایجاد یک force close می شود (یعنی بسته شدن اجباری برنامه اندروید). به جای کد بالا، باید کد صحیح زیر را به کار ببریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]if[/B][COLOR=#009900]([/COLOR]myString.[COLOR=#006633]equals[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"string_to_check"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// some commands[/I][/COLOR]
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حذف فضاهای خالی (کاراکترهای space) ابتدا و انتهای یک رشته (String)، با روش trim ، در برنامه نویسی اندروید

حذف فضاهای خالی (کاراکترهای space) ابتدا و انتهای یک رشته (String)، با روش trim ، در برنامه نویسی اندروید

گاهی ممکن است که هنگام تعریف یک رشته (String) یا هنگام به دست آوردن یک رشته (String) ، تعدادی کاراکتر space (یعنی فضای خالی)، در ابتدا و انتهای رشته قرار بگیرد. بنابراین باید به روشی، کاراکترهای space را از ابتدا و انتهای رشته حذف کنیم.

با استفاده از روش trim می توانیم فضای خالی (space) ابتدا و انتهای رشته (String) را حذف کنیم. به عنوان مثال، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] str_1 [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"  www.kelidestan.com     "[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] str_2 [COLOR=#339933]=[/COLOR] str_1.[COLOR=#006633]trim[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، در ابتدا و انتهای رشته اول که تعریف کرده ایم، تعدادی کاراکتر space وجود دارد و در خظ دوم از کدها، از روش trim برای حذف آنها، استفاده کرده ایم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن تعداد کاراکترهای یک رشته (String)، با روش length ، در برنامه نویسی اندروید

به دست آوردن تعداد کاراکترهای یک رشته (String)، با روش length ، در برنامه نویسی اندروید

چنانچه بخواهیم که تعداد کاراکترهای یک رشته (String) را به دست آوریم، می توانیم از روش length استفاده کنیم.

به عنوان مثال، کدهای زیر را مشاهده کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] str [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.kelidestan.com"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000066][B]int[/B][/COLOR] num [COLOR=#339933]=[/COLOR] str.[COLOR=#006633]length[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
با اجرای کد بالا، مقدار 18 در یک متغیر int با نام num ذخیره خواهد شد، زیرا رشته مورد نظر، دارای 18 کاراکتر می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
چک کردن وجود داشتن یک رشته (String) در رشته ای دیگر، با روش contains ، در برنامه نویسی اندروید

چک کردن وجود داشتن یک رشته (String) در رشته ای دیگر، با روش contains ، در برنامه نویسی اندروید

با استفاده از روش contains ، می توانیم چک کنیم که آیا یک رشته (String) در رشته ای دیگر وجود دارد یا خیر.

به عنوان مثال، کدهای زیر را مشاهده کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] str [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]Boolean[/COLOR] b [COLOR=#339933]=[/COLOR] str.[COLOR=#006633]contains[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"iran-eng"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
چون رشته iran-eng در رشته www.www.www.iran-eng.ir وجود دارد، بنابراین روش contains ، مقدار true را برمی گرداند، بنابراین مقدار true در متغیر b ذخیره خواهد شد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تبدیل یک رشته (String) به تعدادی رشته، بر اساس وجود یک علامت در آن، با روش split ، در برنامه نویسی اندروید

تبدیل یک رشته (String) به تعدادی رشته، بر اساس وجود یک علامت در آن، با روش split ، در برنامه نویسی اندروید

نمی دانم شما با زبان برنامه نویسی PHP آشنایی دارید یا خیر، یکی از امکانات زبان PHP ، این است که می توانیم تعدادی رشته (string) را در یک رشته قرار بدهیم که در آن رشته واحد، یک علامت در میان رشته ها قرار داده می شود تا بعدا بتوانیم آنها را از هم تشخیص بدهیم (این مرحله با دستور implode در PHP اجرا می شود و علامت را هم در همین مرحله انتخاب می کنیم)، سپس چنانچه بخواهیم رشته های اولیه را از آن رشته بازیابی کنیم، در PHP یک دستور داریم با نام explode که تنها باید به آن، علامت مورد نظر را بدهیم تا سپس تمامی رشته ها را به صورت عناصر یک آرایه به ما برگرداند. این نوع عملیات، بسیار به درد بخور است، مثلا اگر من بخواهم 100 رشته را در یک پایگاه داده (database) ذخیره کنم، نیازی نیست که در جدول (table) موجود در پایگاه داده، 100 تا ستون (column) بسازم، بلکه آن 100 رشته را با دستور implode تبدیل به یک رشته کرده و در یک ستون از جدول ذخیره می کنم. هر زمان هم که بخواهم آن 100 رشته را بازیابی کنم، دستور explode را به کار می برم. خوب تا اینجا که در مورد PHP حرف زدیم، اکنون می خواهیم مشابه همین کاربرد در PHP ، روش split را در برنامه نویسی اندروید معرفی کنیم که یک رشته که از تعدادی رشته، با یک علامت خاص در بین آنها، تشکیل شده است را دریافت کرده و سپس آن رشته ها را در آرایه ای از رشته ها، به ما می دهد تا با هر کدام، به طور جداگانه کار کنیم (مثل دستور explode در PHP).

به مثال زیر توجه کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] myString [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"alireza,hamid,hosein"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR][COLOR=#009900][[/COLOR][COLOR=#009900]][/COLOR] multipleStrings [COLOR=#339933]=[/COLOR] myString.[COLOR=#006633]split[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]","[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
علامت مورد نظر، برابر , انتخاب شده است. با اجرای کدها، آرایه رشته ای multipleStrings دارای سه عنصر خواهد بود، یعنی alireza و hamid و hosein ، که می توانیم آنها را از آرایه رشته ای، فراخوانی کنیم.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر در برنامه نویسی اندروید

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر در برنامه نویسی اندروید

ساخت یک TextView با قابلیت نمایش مختصری از متن و سپس نمایش کامل متن هنگام اشاره کاربر (Expandable TextView)، در برنامه نویسی اندروید :

در این مبحث قصد داریم یک پروژه اندروید بسازیم که در آن یک TextView وجود دارد که برای نمایش یک متن طولانی به کار می رود، اما می خواهیم چون متن طولانی است، ابتدا چند خط اول آن نمایش داده شود و سپس، اگر کاربر بر روی TextView اشاره کرد، متن به طور کامل نمایش داده شود (TextView باز شود). همچنین معکوس این فرآیند نیز امکان پذیر خواهد بود، یعنی وقتی TextView به طور کامل، متن را نمایش داده است، اگر کاربر بر روی TextView اشاره کند، آنگاه تنها همان چند خط اول نمایش داده شود (TextView جمع شود).
دو عکس از دو حالت مربوط به نمایش TextView را در زیر نمایش می دهیم. عکس اول، برای زمانی که TextView تنها چند خط اول را نمایش می دهد :

android-306.jpg


عکس دوم برای زمانی که TextView ، متن را به طور کامل نمایش می دهد :

android-307.jpg

در برنامه eclipse ، ابتدا یک پروژه اندروید با نام ExpandableEditText می سازیم (نام package را برابر com.iran-eng.expandableedittext انتخاب می کنیم. نام Activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم برابر activity_main قرار می دهیم) :

android-305.jpg

سپس برای پروژه اندروید، یک کلاس (class) جدید با نام ExpandableTextView می سازیم و همچنین در پوشه values از پروژه اندروید، یک فایل xml با نام attr.xml می سازیم :

android-304.jpg

در فایل attr.xml ، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<?[/COLOR]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"utf-8"[/COLOR][COLOR=#339933]?>[/COLOR]
[COLOR=#339933]<[/COLOR]resources[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]declare[COLOR=#339933]-[/COLOR]styleable name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"ExpandableTextView"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]attr name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"trimLength"[/COLOR] format[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"integer"[/COLOR][COLOR=#339933]/>[/COLOR]
[COLOR=#339933]</[/COLOR]declare[COLOR=#339933]-[/COLOR]styleable[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]resources[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
در فایل ExpandableTextView.java که همان کلاس (class) ساخته شده می باشد، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]package[/B] [COLOR=#006699]com.iran-eng.expandableedittext[/COLOR][COLOR=#339933];[/COLOR]

[B]import[/B] [COLOR=#006699]android.content.Context[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.content.res.TypedArray[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.text.SpannableStringBuilder[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.util.AttributeSet[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.view.View[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.widget.TextView[/COLOR][COLOR=#339933];[/COLOR]

[B]public[/B] [B]class[/B] ExpandableTextView [B]extends[/B] TextView [COLOR=#009900]{[/COLOR]
    [B]private[/B] [B]static[/B] [B]final[/B] [COLOR=#000066][B]int[/B][/COLOR] DEFAULT_TRIM_LENGTH [COLOR=#339933]=[/COLOR] [COLOR=#CC66CC]200[/COLOR][COLOR=#339933];[/COLOR]
    [B]private[/B] [B]static[/B] [B]final[/B] [COLOR=#003399]String[/COLOR] ELLIPSIS [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"....."[/COLOR][COLOR=#339933];[/COLOR]

    [B]private[/B] CharSequence originalText[COLOR=#339933];[/COLOR]
    [B]private[/B] CharSequence trimmedText[COLOR=#339933];[/COLOR]
    [B]private[/B] BufferType bufferType[COLOR=#339933];[/COLOR]
    [B]private[/B] [COLOR=#000066][B]boolean[/B][/COLOR] trim [COLOR=#339933]=[/COLOR] [COLOR=#000066][B]true[/B][/COLOR][COLOR=#339933];[/COLOR]
    [B]private[/B] [COLOR=#000066][B]int[/B][/COLOR] trimLength[COLOR=#339933];[/COLOR]

    [B]public[/B] ExpandableTextView[COLOR=#009900]([/COLOR][COLOR=#003399]Context[/COLOR] context[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]this[/B][COLOR=#009900]([/COLOR]context, [COLOR=#000066][B]null[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]public[/B] ExpandableTextView[COLOR=#009900]([/COLOR][COLOR=#003399]Context[/COLOR] context, [COLOR=#003399]AttributeSet[/COLOR] attrs[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]super[/B][COLOR=#009900]([/COLOR]context, attrs[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

        TypedArray typedArray [COLOR=#339933]=[/COLOR] context.[COLOR=#006633]obtainStyledAttributes[/COLOR][COLOR=#009900]([/COLOR]attrs, R.[COLOR=#006633]styleable[/COLOR].[COLOR=#006633]ExpandableTextView[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
        [B]this[/B].[COLOR=#006633]trimLength[/COLOR] [COLOR=#339933]=[/COLOR] typedArray.[COLOR=#006633]getInt[/COLOR][COLOR=#009900]([/COLOR]R.[COLOR=#006633]styleable[/COLOR].[COLOR=#006633]ExpandableTextView_trimLength[/COLOR], DEFAULT_TRIM_LENGTH[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
        typedArray.[COLOR=#006633]recycle[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

        setOnClickListener[COLOR=#009900]([/COLOR][B]new[/B] OnClickListener[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
            @Override
            [B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] onClick[COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR] v[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                trim [COLOR=#339933]=[/COLOR] [COLOR=#339933]![/COLOR]trim[COLOR=#339933];[/COLOR]
                setText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                requestFocusFromTouch[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#009900]}[/COLOR]
        [COLOR=#009900]}[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]private[/B] [COLOR=#000066][B]void[/B][/COLOR] setText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]super[/B].[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]getDisplayableText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR], bufferType[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]private[/B] CharSequence getDisplayableText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]return[/B] trim [COLOR=#339933]?[/COLOR] trimmedText [COLOR=#339933]:[/COLOR] originalText[COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    @Override
    [B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] setText[COLOR=#009900]([/COLOR]CharSequence text, BufferType type[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        originalText [COLOR=#339933]=[/COLOR] text[COLOR=#339933];[/COLOR]
        trimmedText [COLOR=#339933]=[/COLOR] getTrimmedText[COLOR=#009900]([/COLOR]text[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
        bufferType [COLOR=#339933]=[/COLOR] type[COLOR=#339933];[/COLOR]
        setText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]private[/B] CharSequence getTrimmedText[COLOR=#009900]([/COLOR]CharSequence text[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]if[/B] [COLOR=#009900]([/COLOR]originalText [COLOR=#339933]!=[/COLOR] [COLOR=#000066][B]null[/B][/COLOR] [COLOR=#339933]&&[/COLOR] originalText.[COLOR=#006633]length[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]>[/COLOR] trimLength[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
            [B]return[/B] [B]new[/B] SpannableStringBuilder[COLOR=#009900]([/COLOR]originalText, [COLOR=#CC66CC]0[/COLOR], trimLength [COLOR=#339933]+[/COLOR] [COLOR=#CC66CC]1[/COLOR][COLOR=#009900])[/COLOR].[COLOR=#006633]append[/COLOR][COLOR=#009900]([/COLOR]ELLIPSIS[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR] [B]else[/B] [COLOR=#009900]{[/COLOR]
            [B]return[/B] originalText[COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]public[/B] CharSequence getOriginalText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]return[/B] originalText[COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] setTrimLength[COLOR=#009900]([/COLOR][COLOR=#000066][B]int[/B][/COLOR] trimLength[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]this[/B].[COLOR=#006633]trimLength[/COLOR] [COLOR=#339933]=[/COLOR] trimLength[COLOR=#339933];[/COLOR]
        trimmedText [COLOR=#339933]=[/COLOR] getTrimmedText[COLOR=#009900]([/COLOR]originalText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
        setText[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]

    [B]public[/B] [COLOR=#000066][B]int[/B][/COLOR] getTrimLength[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
        [B]return[/B] trimLength[COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
در واقع با کلاس ExpandableTextView ، عنصری با نام ExpandableTextView را در پروژه اندروید ساخته ایم که در هر فایل xml که آن را تعریف کنیم، دقیقا همین مشخصه های باز شدن و جمع شدن را خواهد داشت (یک TextView که دارای ویژگی باز شدن و جمع شدن می باشد). بنابراین باید دقت داشت که اگر یک عنصر TextView در فایل های xml پروژه اندروید تعریف کنید، همان ویژگی های معمولی TextView را خواهد داشت، اما اگر نیاز به قابلیت باز شدن و جمع شدن دارید، باید یک عنصر ExpandableTextView در فایل xml تعریف کنید.

در واقع کلاس ExpandableTextView را بر اساس توسعه کلاس TextView ساخته ایم. این مورد در خط زیر از کدهای کلاس ExpandableTextView نوشته شده است :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]public[/B] [B]class[/B] ExpandableTextView [B]extends[/B] TextView [COLOR=#009900]{[/COLOR][/FONT]
[/FONT][/COLOR]
در کد بالا، به کلمه extends دقت کنید.

در فایل activity_main.xml ، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]RelativeLayout xmlns[COLOR=#339933]:[/COLOR]android[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/apk/res/android"[/COLOR]
    xmlns[COLOR=#339933]:[/COLOR]tools[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/tools"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]paddingBottom[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_vertical_margin"[/COLOR]
    android[COLOR=#339933]:[/COLOR]paddingLeft[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_horizontal_margin"[/COLOR]
    android[COLOR=#339933]:[/COLOR]paddingRight[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_horizontal_margin"[/COLOR]
    android[COLOR=#339933]:[/COLOR]paddingTop[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@dimen/activity_vertical_margin"[/COLOR]
    tools[COLOR=#339933]:[/COLOR]context[COLOR=#339933]=[/COLOR][COLOR=#0000FF]".MainActivity"[/COLOR] [COLOR=#339933]>[/COLOR]

    [COLOR=#339933]<[/COLOR]com.[COLOR=#006633]iran-eng[/COLOR].[COLOR=#006633]expandableedittext[/COLOR].[COLOR=#006633]ExpandableTextView[/COLOR]
         android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/expandableTextView"[/COLOR]
         android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"fill_parent"[/COLOR]
         android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR] [COLOR=#339933]/>[/COLOR]

[COLOR=#339933]</[/COLOR]RelativeLayout[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که مشاهده می کنید، در آن یک عنصر ExpandableTextView تعریف کرده ایم و نکته مهم این است که قبل از نام ExpandableTextView ، نام package برنامه اندروید را نوشته ایم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]com.[COLOR=#006633]iran-eng[/COLOR].[COLOR=#006633]expandableedittext[/COLOR].[COLOR=#006633]ExpandableTextView[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین شما برای پروژه اندروید خود، باید نام package برنامه اندروید خود را بنویسید.

در فایل MainActivity.java ، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]package[/B] [COLOR=#006699]com.iran-eng.expandableedittext[/COLOR][COLOR=#339933];[/COLOR]

[B]import[/B] [COLOR=#006699]android.app.Activity[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.os.Bundle[/COLOR][COLOR=#339933];[/COLOR]

[B]public[/B] [B]class[/B] MainActivity [B]extends[/B] Activity [COLOR=#009900]{[/COLOR]

        @Override
        [B]protected[/B] [COLOR=#000066][B]void[/B][/COLOR] onCreate[COLOR=#009900]([/COLOR]Bundle savedInstanceState[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                [B]super[/B].[COLOR=#006633]onCreate[/COLOR][COLOR=#009900]([/COLOR]savedInstanceState[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                setContentView[COLOR=#009900]([/COLOR]R.[COLOR=#006633]layout[/COLOR].[COLOR=#006633]activity_main[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                
                [COLOR=#003399]String[/COLOR] yourText [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.iran-eng.ir [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com"[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com "[/COLOR] [COLOR=#339933]+[/COLOR]
                                [COLOR=#0000FF]"[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com [/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com"[/COLOR][COLOR=#339933];[/COLOR]

                ExpandableTextView expandableTextView [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]ExpandableTextView[COLOR=#009900])[/COLOR]findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]expandableTextView[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                expandableTextView.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]yourText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR]


[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
پروژه اندروید آماده است و شما می توانید آن را با روش دلخواهتان تست کنید.

من برنامه اندروید را بر روی یک گوشی اندروید واقعی تست می کنم، با اجرا شدن برنامه اندروید، صفحه زیر نمایش داده می شود :

android-308.jpg

من بر روی متن اشاره می کنم و بنابراین، ادامه متن نیز نمایش داده می شود :


android-309.jpg

دوباره بر روی متن اشاره می کنم تا تنها چند خط اول متن نمایش داده شود :

android-310.jpg

فایل های پروژه اندروید را می توانید از لینک های زیر دریافت کنید :

کدهای این پروژه اندروید، بر اساس منبع زیر نوشته شده اند :

http://stackoverflow.com/questions/15627530/android-expandable-textview-with-animation
 

پیوست ها

  • 124.zip
    933.1 کیلوبایت · بازدیدها: 0
  • 125.rar
    259 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تبدیل تمامی حرف های یک رشته (String)، به حرف های بزرگ یا حرف های کوچک، با روش های toLowerCase و toUpperCase

تبدیل تمامی حرف های یک رشته (String)، به حرف های بزرگ یا حرف های کوچک، با روش های toLowerCase و toUpperCase

[h=2]تبدیل تمامی حرف های یک رشته (String)، به حرف های بزرگ یا حرف های کوچک، با روش های toLowerCase و toUpperCase ، در برنامه نویسی اندروید :[/h]روش toLowerCase برای تبدیل همه حرف های یک رشته (String) به حروف های کوچک و روش toUpperCase برای تبدیل همه حرف های یک رشته به حرف های بزرگ به کار می رود.

به عنوان مثال، کدهای زیر را مشاهده کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] str_1 [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] str_2 [COLOR=#339933]=[/COLOR] str_1.[COLOR=#006633]toUpperCase[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] str_3 [COLOR=#339933]=[/COLOR] str_2.[COLOR=#006633]toLowerCase[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
رشته str_2 به صورت زیر خواهد بود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]WWW.[COLOR=#006633]IRAN-ENG[/COLOR].[COLOR=#006633]COM[/COLOR][/FONT]
[/FONT][/COLOR]
و رشته str_3 به صورت زیر خواهد بود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]www.[COLOR=#006633]iran-eng[/COLOR].[COLOR=#006633]com[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تعیین تعداد خط های یک TextView ، در برنامه نویسی اندروید

تعیین تعداد خط های یک TextView ، در برنامه نویسی اندروید

فرض کنید که یک TextView با id برابر textView1 تعریف کرده ایم و به عنوان مثال، می خواهیم که این TextView ، تنها شامل 5 خط باشد، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setLines[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین هر متنی که در TextView نمایش بدهیم، اگر تعداد خطوط متن، بیشتر از 5 تا باشد، تنها 5 خط اول آن در TextView نمایش داده می شود و چنانچه تعداد خطوط آن، کمتر از 5 تا باشد، آنگاه تعدادی خط خالی در انتهای TextView نمایش داده می شود تا تعداد خطوط آن، به 5 عدد برسد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
برداشتن محدودیت تعداد خطوط یک TextView ، در برنامه نویسی اندروید

برداشتن محدودیت تعداد خطوط یک TextView ، در برنامه نویسی اندروید

در مبحثی دیگر شرح دادیم که اگر یک TextView با id برابر textView1 داشته باشیم و بخواهیم به عنوان مثال، تعداد خطوط آن برابر 5 تا باشد، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setLines[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اما ممکن است که بعد از اجرای کد فوق، بخواهیم که کل متن تعیین شده برای TextView ، در آن نمایش داده شود و دیگر محدودیت تعداد خط برای TextView نداشته باشیم (زیرا تنها 5 خط از متن، در TextView نمایش داده می شود). برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]tv.[COLOR=#006633]setMaxLines[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]Integer[/COLOR].[COLOR=#006633]MAX_VALUE[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تعیین حداکثر تعداد خطوط یک TextView ، با روش setMaxLines ، در برنامه نویسی اندروید

تعیین حداکثر تعداد خطوط یک TextView ، با روش setMaxLines ، در برنامه نویسی اندروید

فرض کنید که یک TextView با id برابر textView1 تعریف کرده ایم و می خواهیم که تعیین کنیم، حداکثر دارای 5 خط باشد، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setMaxLines[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]5[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین، اگر متنی که در آن TextView نمایش می دهیم، تعداد خطوطی کمتر از 5 تا را اشغال کند، تعداد خطوط TextView برابر همان تعداد خطوط از متن می باشد، اما اگر تعداد خطوطی که متن اشغال می کند، بیش از 5 خط باشد، آنگاه تنها 5 خط از متن در TextView نمایش داده می شود.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نمایش حاصل اجرای کدهای HTML ، در یک TextView ، در برنامه نویسی اندروید

نمایش حاصل اجرای کدهای HTML ، در یک TextView ، در برنامه نویسی اندروید

در مبحثی دیگر گفتیم که نتیجه اجرای کدهای HTML را می توانیم در یک WebView نمایش بدهیم، اما علاوه بر WebView ، در TextView نیز می توان حاصل اجرای کدهای HTML را نمایش داد (البته با روشی که در ادامه شرح می دهیم). مثلا تگ های h1 تا h6 باعث بزرگتر نمایش داده شدن در TextView می شوند. البته باید در همین ابتدا تذکر داده شود که برای برخی از تگ های (tags) مربوط به HTML ، باید یک سری کد بنویسیم تا درست عمل کنند.

مثلا برای تگ a که برای نمایش یک لینک (link) است، لینک نمایش داده می شود اما با اشاره بر روی آن، به صفحه مقصد منتقل نمی شویم و برای تصحیح این مشکل، باید کمی کد بنویسیم. بنابراین اگر برای نمایش نتیجه اجرای کدهای HTML ، زیاد برایتان تفاوتی بین WebView و TextView نیست، توصیه می شود از همان WebView استفاده کنید، اما اگر از برخی ویژگی های TextView می خواهید استفاده کنید، در ادامه چگونگی اجرای کدهای HTML در یک TextView را شرح خواهیم داد.
فرض کنید که یک TextView با id برابر textView1 داریم. متن مورد نظرمان را که حاوی تگ های HTML نیز می باشد، در متغیری با نام myText ذخیره می کنیم و برای نمایش آن در TextView ، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] myText [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir <h2>www.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com</h2> www.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com"[/COLOR][COLOR=#339933];[/COLOR]
Spanned sp [COLOR=#339933]=[/COLOR] Html.[COLOR=#006633]fromHtml[/COLOR][COLOR=#009900]([/COLOR]myText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]sp[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین چون در بخشی از متن، از تگ h2 استفاده کرده ایم، آن بخش از متن، بزرگتر نمایش داده می شود.مهمترین بخش از کدها، استفاده از روش Html.fromHtml می باشد.

نکته :
همان طور که قبلا گفتیم، روش فوق، برای برخی تگ های HTML ، ممکن است درست عمل نکند. مثلا فرض کنید که در متن مورد نظرمان، یک لینک تعریف کرده باشیم (با تگ a) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] myText [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"<a href=[COLOR=#000099][B]\"[/B][/COLOR]http://www.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com/[COLOR=#000099][B]\"[/B][/COLOR]>www.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com</a>"[/COLOR][COLOR=#339933];[/COLOR]
Spanned sp [COLOR=#339933]=[/COLOR] Html.[COLOR=#006633]fromHtml[/COLOR][COLOR=#009900]([/COLOR]myText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]sp[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
دقت کنید که قبل از علامت های " در متن، باید علامت \ را بنویسیم تا با خطا روبرو نشویم. اگر کد بالا اجرا شود، لینک نمایش داده می شود، اما با کلیک بر روی آن، به صفحه مقصد منتقل نمی شویم. برای آنکه لینک به درستی عمل کند، باید یک خط کد به کدهایمان اضافه کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]tv.[COLOR=#006633]setMovementMethod[/COLOR][COLOR=#009900]([/COLOR]LinkMovementMethod.[COLOR=#006633]getInstance[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین کل کدهایمان به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] myText [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"<a href=[COLOR=#000099][B]\"[/B][/COLOR]http://www.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com/[COLOR=#000099][B]\"[/B][/COLOR]>www.[/COLOR][/FONT][/FONT][/COLOR][COLOR=#0000FF][FONT=monospace]iran-eng[/FONT][/COLOR][COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#0000FF].com</a>"[/COLOR][COLOR=#339933];[/COLOR]
Spanned sp [COLOR=#339933]=[/COLOR] Html.[COLOR=#006633]fromHtml[/COLOR][COLOR=#009900]([/COLOR]myText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]sp[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setMovementMethod[/COLOR][COLOR=#009900]([/COLOR]LinkMovementMethod.[COLOR=#006633]getInstance[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
با این کدها، هنگام اشاره کاربر بر روی لینک، مرورگر اینترنت گوشی اندروید وی باز شده و آن صفحه مقصد را نمایش می دهد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تبدیل خودکار آدرس های اینترنتی (URL) موجود در متن نمایش داده شده در یک TextView ، به لینک (link)، در برنامه نویسی اندروید

تبدیل خودکار آدرس های اینترنتی (URL) موجود در متن نمایش داده شده در یک TextView ، به لینک (link)، در برنامه نویسی اندروید

ممکن است که متنی که در یک TextView نمایش داده ایم، حاوی تعدادی آدرس اینترنتی (URL) باشد، این آدرس ها به صورت معمولی نمایش داده می شود، اما چنانچه بخواهیم که برنامه اندروید، به طور خودکار، آدرس های اینترنتی (URL) موجود در متن را بیابد و آنها را به صورت لینک (link) نمایش بدهد، باید یک سری کد بنویسیم.شیوه کلی کدنویسی برای این منظور، به شکل زیر می باشد (فرض کرده ایم که TextView دارای id برابر textView1 می باشد) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] myText [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"android programming : [URL]http://www.www.www.iran-eng.ir[/URL]  --- www.[/COLOR][COLOR=#0000FF]iran-eng[/COLOR][COLOR=#0000FF].com --- [/COLOR][COLOR=#0000FF]iran-eng[/COLOR][COLOR=#0000FF].com"[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]myText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
Linkify.[COLOR=#006633]addLinks[/COLOR][COLOR=#009900]([/COLOR]tv, Linkify.[COLOR=#006633]ALL[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در رشته تعریف شده با نام myText ، من عمدا سه شکل مختلف آدرس دهی را نوشته ام :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]http[COLOR=#339933]:[/COLOR][COLOR=#666666][I]//www.www.www.iran-eng.ir[/I][/COLOR]
[URL="http://www.<font color="#006633">iran-eng</font>"]www.[COLOR=#006633]iran-eng[/COLOR][/URL].[COLOR=#006633]com[/COLOR]
iran-eng.[COLOR=#006633]com[/COLOR][/FONT]
[/FONT][/COLOR]
زیرا ممکن است برای شما این سوال پیش بیاید که آیا نوشتن پیشوندهای http:// و www ، ضروری است یا خیر. اکنون خودتان می توانید پاسخ این سوال را در نتیجه زیر متوجه بشوید :android-311.jpg
مشاهده می کنید که هر سه شکل آدرس دهی، به لینک (link) تبدیل شده اند. با اشاره بر روی هر کدام از دو تای اول، مرورگر اینترنت گوشی اجرا شده و صفحه مقصد را نمایش می دهد، اما برای سومی، پس از اشاره کاربر، پنجره ای با عنوان Complete action using نمایش داده می شود که در آن، باید برنامه مورد نظرتان برای اجرای آن لینک را انتخاب کنید (در برنامه ها، مرورگر اینترنت گوشی اندروید نیز نمایش داده می شود).

نکته :

در مبحث دیگری، چگونگی اجرای کدهای HTML موجود در یک متن و نمایش نتیجه آن، در یک TextView را شرح دادیم، بنابراین استفاده از تگ a که برای ساخت لینک در HTML به کار می رود نیز می تواند برای ساخت لینک در یک TextView به کار رود، چنانچه به این نوع ساخت لینک نیاز دارید، می توانید به آن مبحث مراجعه کنید (در آن، از روش Html.fromHtml استفاده می شود، البته در استفاده از تگ a ، باید نکاتی را در نظر داشت که در همان مبحث شرح داده شده است).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حرکت کردن متن در یک TextView، از سمت راست به چپ، با استفاده از مشخصه های TextView ، در برنامه نویسی اندروید

حرکت کردن متن در یک TextView، از سمت راست به چپ، با استفاده از مشخصه های TextView ، در برنامه نویسی اندروید

در این مبحث قصد داریم چگونگی حرکت کردن متن در یک TextView ، از سمت راست به چپ را آموزش بدهیم. قبل از هر چیز باید تذکر داده شود که متن مورد نظرمان، باید دارای طولی بیش از یک خط از TextView باشد تا شروع به حرکت کند، در غیر این صورت، به صورت ثابت در TextView نمایش داده می شود.

کدهای فایل xml را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<?[/COLOR]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"utf-8"[/COLOR][COLOR=#339933]?>[/COLOR]
[COLOR=#339933]<[/COLOR]RelativeLayout
    xmlns[COLOR=#339933]:[/COLOR]android[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/apk/res/android"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"fill_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"fill_parent"[/COLOR][COLOR=#339933]>[/COLOR]
    [COLOR=#339933]<[/COLOR]TextView
        android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/textView1"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_alignParentRight[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR]
        android[COLOR=#339933]:[/COLOR]ellipsize[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"marquee"[/COLOR]
        android[COLOR=#339933]:[/COLOR]focusable[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR]
        android[COLOR=#339933]:[/COLOR]focusableInTouchMode[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR]
        android[COLOR=#339933]:[/COLOR]marqueeRepeatLimit[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"marquee_forever"[/COLOR]
        android[COLOR=#339933]:[/COLOR]scrollHorizontally[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR]
        android[COLOR=#339933]:[/COLOR]singleLine[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"true"[/COLOR]
        android[COLOR=#339933]:[/COLOR]textColor[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"#ff4500"[/COLOR] [COLOR=#339933]/>[/COLOR]
[COLOR=#339933]</[/COLOR]RelativeLayout[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
در کدهای بالا، به ویژگی های تعریف شده برای TextView ، خوب دقت کنید.

اکنون در میان کدهای Activity متناظر، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#003399]String[/COLOR] myText [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir : this is a very long piece of text that will move."[/COLOR][COLOR=#339933];[/COLOR]
TextView tv [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textView1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]myText[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
tv.[COLOR=#006633]setSelected[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000066][B]true[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه به صورت زیر می باشد :android-312.jpg
android-313.jpg
همان طور که مشاهده می کنید، چون متن مورد نظر، دارای طولی بیش از یک خط از TextView می باشد، بنابراین درون TextView ، از سمت راست به چپ، حرکت می کند.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حرکت کردن متن در یک TextView ، از سمت راست به چپ و یا از سمت چپ به راست، با استفاده از Animation ، در برنامه نویسی اندروید

حرکت کردن متن در یک TextView ، از سمت راست به چپ و یا از سمت چپ به راست، با استفاده از Animation ، در برنامه نویسی اندروید

در مبحثی دیگر، آموزش دادیم که چگونه می توان با استفاده از برخی مشخصه های TextView ، تعیین کنیم که متن درون TextView ، از سمت راست به چپ، حرکت کند. اکنون می خواهیم نحوه حرکت کردن متن درون TextView ، با استفاده از Animation را آموزش بدهیم.

دقت شود که واحدهای به کار رفته در این مبحث، برای صفحه های نمایش مختلف، بهینه سازی نشده اند و تنها هدف مبحث این بوده که ساختار کدها را یاد بگیرید، در صورت تمایل، می توانید از واحدهای مناسب برای صفحه نمایش های مختلف استفاده کنید.

در فایل xml ، دو TextView تعریف می کنیم زیرا می خواهیم در یکی از آنها، متن از سمت راست به سمت چپ (textViewMarqToLeft) و در دیگری، متن از سمت چپ به سمت راست (textViewMarqToRight) حرکت کند :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<?[/COLOR]xml version[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"1.0"[/COLOR] encoding[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"utf-8"[/COLOR][COLOR=#339933]?>[/COLOR]
[COLOR=#339933]<[/COLOR]LinearLayout xmlns[COLOR=#339933]:[/COLOR]android[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/apk/res/android"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"fill_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"fill_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]orientation[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"vertical"[/COLOR] [COLOR=#339933]>[/COLOR]
    
    [COLOR=#339933]<[/COLOR]TextView
        android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/textViewMarqToLeft"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR] [COLOR=#339933]/>[/COLOR]
    
    [COLOR=#339933]<[/COLOR]TextView
        android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/textViewMarqToRight"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR] [COLOR=#339933]/>[/COLOR]
    
[COLOR=#339933]</[/COLOR]LinearLayout[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
کدهای زیر را در میان کدهای Activity متناظر می نویسیم (درون فایل java مربوط به Activity) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]Animation animationToLeft [COLOR=#339933]=[/COLOR] [B]new[/B] TranslateAnimation[COLOR=#009900]([/COLOR][COLOR=#CC66CC]400[/COLOR], [COLOR=#CC66CC]0[/COLOR], [COLOR=#CC66CC]0[/COLOR], [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
animationToLeft.[COLOR=#006633]setDuration[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]12000[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR] 
animationToLeft.[COLOR=#006633]setRepeatMode[/COLOR][COLOR=#009900]([/COLOR]Animation.[COLOR=#006633]RESTART[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
animationToLeft.[COLOR=#006633]setRepeatCount[/COLOR][COLOR=#009900]([/COLOR]Animation.[COLOR=#006633]INFINITE[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

Animation animationToRight [COLOR=#339933]=[/COLOR] [B]new[/B] TranslateAnimation[COLOR=#009900]([/COLOR][COLOR=#CC66CC]0[/COLOR],[COLOR=#CC66CC]400[/COLOR], [COLOR=#CC66CC]0[/COLOR], [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
animationToRight.[COLOR=#006633]setDuration[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]12000[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR] 
animationToRight.[COLOR=#006633]setRepeatMode[/COLOR][COLOR=#009900]([/COLOR]Animation.[COLOR=#006633]RESTART[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
animationToRight.[COLOR=#006633]setRepeatCount[/COLOR][COLOR=#009900]([/COLOR]Animation.[COLOR=#006633]INFINITE[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

TextView textViewMarqToLeft [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textViewMarqToLeft[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
TextView textViewMarqToRight [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]TextView[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]textViewMarqToRight[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

textViewMarqToLeft.[COLOR=#006633]setAnimation[/COLOR][COLOR=#009900]([/COLOR]animationToLeft[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
textViewMarqToRight.[COLOR=#006633]setAnimation[/COLOR][COLOR=#009900]([/COLOR]animationToRight[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] textLeft [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"Left marquue"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#003399]String[/COLOR] textRight [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"Right marquue"[/COLOR][COLOR=#339933];[/COLOR]
textViewMarqToLeft.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]textLeft[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
textViewMarqToRight.[COLOR=#006633]setText[/COLOR][COLOR=#009900]([/COLOR]textRight[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
نتیجه به صورت زیر می باشد :android-314.jpg
android-315.jpg
همان طور که مشاهده می کنید، در اولین TextView ، متن از سمت راست به سمت چپ و در دومین TextView ، متن از سمت چپ به سمت راست حرکت می کند.

کدهای این مبحث، بر اساس منبع زیر می باشند :

http://stackoverflow.com/questions/11503830/androidhow-to-move-marquee-text-from-right-to-left-and-left-and-right-by-clicki
 
بالا