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

سلام علیکم. :write:

باز اومدیم با یه آموزش جالب واسه بیسیک توسط جاوا…

حتما دیدین توی یعضی از برنامه ها قسمت درباره ما یا راهنمایی شون یه متنی رو مینویسن بعد یه لینک هم مابین این متن قرار میدن و خیلی شیک اون لینک خودکار آبی میشه و وقتی روش کلیک میکنیم برنامه هایی که اون لینک رو میپذیرن باز میشه مثل مرورگر و…

یا حتی وقتی انگشت رو روی اون لینک نگه میداریم میشه کپیش کرد.

 

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

بعد مثلا میومدیم توی رویداد کلیک لیبل مینوشتیم که اون لینکه با اینتنت باز بشه….

اما اصلش اینجوریه که الان عرض میکنم :crazy:

 

نمونه ای که ساختیم الان :

 

خب کتابخانه JavaObject رو تیک بزنید و کد زیر رو بین ساب هاتون بنویسید(کپی نکنید :D )

#if java
import android.widget.TextView;
import android.text.util.Linkify;

 public void link(TextView LaeblName){
	 Linkify.addLinks(LaeblName, Linkify.ALL);
 }

#end if

حالا کافیه اسم لیبلی که میخوایم همین عمل روش انجام بشه بهش بدیم:

Dim j As JavaObject
j.InitializeContext
j.RunMethod("link",Array(Label1))

تموم شد به همین راحتی.

نکته: نیازی نیست که توی متن لینک ها حتما http یا www داشته باشن. یعنی کلا توی متن یه همچین چیزی داشته باشید: www.YAHOO98.ir خودش تشخیص میده که لینک هست….

 

نمونه کامل سورس :

#Region  Project Attributes 
	#ApplicationLabel: yahoo98.ir
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.

End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
Dim label1 As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("1")
Dim j As JavaObject
j.InitializeContext
j.RunMethod("link",Array(label1))
End Sub
#if java
import android.widget.TextView;
import android.text.util.Linkify;

 public void link(TextView LaeblName){
	 Linkify.addLinks(LaeblName, Linkify.ALL);
 }

#end if
Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub