رفتن به مطلب
  • 0

اجرای عملیات هنگام لمس کردن قسمتی از متن


Crashday

سوال

به نام خدا

سلام دوستان،

دوستان راهی هست که مثلا وقتی روی قسمتی از متن کلیک شد اکتیویتی مورد نظر ما اجرا بشه؟

مثلا متن من اینه: "سلام حال شما چطوره؟"

میخوام وقتی روی "شما" کلیک شد این کلمه توی یه متغییر ذخیره بشه و اکتیویتی مورد نظرم اجرا بشه،در واقع مثل تگ کردن و هشتگ کردن تلگرام میمونه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام 

کتابخانه  HashGirl وسورسش رو که آقا امیر اشاره کردند رومیتونید از این لینک دانلود کنید.استفاده ازش عین لقمه آماده تو دهن کردنه یه سطرهم بیشترنیست

کتابخانه وسورس HashGirl

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 1396/05/21, 15:55:21، Crashday گفته است :

اینجوری نمیشه،تازه چجوری رویداد کلیک واسش بزاریم؟ میخوام مثلا کلمه @Username رو رنگی کنم (اینجاش رو بدم) و هربار که روش کلیک میشه اکتیویتی مورد نظرم اجرا بشه..

عجب! چرا نمیشه ! خوب هم میشه !

نیاز به گذاشتن رویداد کلیک و اینا هم نیست!

همین که شرط بذاری EditText1.SelectionStart اگر تغییر کرد فلان کار رو بکنه میشه همون رویداد کلیک !

چون وقتی متنی داخل ادیت تکست باشه و کاربر هرجای متن انگشتشو بذاره این گذاره EditText1.SelectionStart خودبخود عوض میشه ومحل متن موردنظر شما رو که بالمس تعیینش کردید رو نشون میده،

لذا نیاز به رویداد کلیک واینها هم نیست !رنگی کردن متن مورد نظر که سهله وآسون بلکه هرکاری وهربلایی بخوای میتونید روی متن مورد نظرتان بااین روش بیارید!

 

 حوصله کردم طبق روشی که بالا عرض کردم براتون سورسشو مینویسم ومیذارم ان شاء الله . 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 11 ساعت قبل، نورنما گفته است :

عجب! چرا نمیشه ! خوب هم میشه !

نیاز به گذاشتن رویداد کلیک و اینا هم نیست!

همین که شرط بذاری EditText1.SelectionStart اگر تغییر کرد فلان کار رو بکنه میشه همون رویداد کلیک !

چون وقتی متنی داخل ادیت تکست باشه و کاربر هرجای متن انگشتشو بذاره این گذاره EditText1.SelectionStart خودبخود عوض میشه ومحل متن موردنظر شما رو که بالمس تعیینش کردید رو نشون میده،

لذا نیاز به رویداد کلیک واینها هم نیست !رنگی کردن متن مورد نظر که سهله وآسون بلکه هرکاری وهربلایی بخوای میتونید روی متن مورد نظرتان بااین روش بیارید!

 

 حوصله کردم طبق روشی که بالا عرض کردم براتون سورسشو مینویسم ومیذارم ان شاء الله . 

خوب وقتی راه ساده تر هست چرا این همه پیچیدش کنیم همونو تو label میزاریم و بعد با روشی که گفت انجام میدیم خودش هم رویداد کلیک هم داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام عرض شد

میتونید از کتابخونه زیر استفاده کنید

hashgirl.gif

https://www.b4x.com/android/forum/threads/hashgirl.70006/

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام علیکم

بله میشه . داخل تایمر یعنی  Sub timer_Tick  ، محل مکان نما رو که با هربار لمس جاش عوض میشه رو با استفاده از این دستور پیداکنید(mahale_makannema =EditText1.SelectionStart )  بعدش اگر محل انتخاب شده فاصله خالی نبود با استفاده از دستور   EditText1.Text.LastIndexOf(" ")     ویا Regex.Matcher-- Matcher.Find  محل جای خالی قبل وبعد کلمه رو پیداکنید وبا استفاده از EditText1.Text.SubString2 -و دستور EditText1.Text.Length وامثال اینها کل کلمه انتخاب شده رو پیدا کنید وداخل متغییرتان ذخیره اش کنیدو هرکاری میخواین باهاش کنید .


 
لینک ارسال
به اشتراک گذاری در سایت های دیگر

اینجوری نمیشه،تازه چجوری رویداد کلیک واسش بزاریم؟ میخوام مثلا کلمه @Username رو رنگی کنم (اینجاش رو بدم) و هربار که روش کلیک میشه اکتیویتی مورد نظرم اجرا بشه..

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام بله هست خیلی هم راحته

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("m")
	sew("Hello @Test T $@Test1 ")
End Sub

Sub sew(t As String)
	Dim ib As Int
	Dim ads As Boolean
	Dim tt As String
	Dim cs As CSBuilder
	cs.Initialize.Size(20)
	
	For i=0 To t.Length
		If ads Then
			If t.SubString2(ib,i) = "@" Or t.SubString2(ib,i) = "/" Or t.SubString2(ib,i) = "#" Or t.SubString2(ib,i) = " " Or t.SubString2(ib,i) = CRLF Then
				cs.Clickable("cs","{" & tt & "}").Color(Colors.Red).Append("@" & tt & " ").PopAll
				ads = False
			End If
			tt = tt & t.SubString2(ib,i)
		Else
				
			If t.SubString2(ib,i) = "@" Then
				ads=True
				tt=""
			Else
				cs.Append(t.SubString2(ib,i))
			End If
		End If
			ib=i
	Next
	Label1.Text = cs
End Sub

Sub cs_Click (Tag As Object)
	Log($"tag: ${Tag}"$)
End Sub

خوب شما می تونید @ نزارید من گذاشتم هر وقت رو اون کلمه کلیک بشه میشه گفت چیکار کنه:pardon: 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...