رفتن به مطلب

مولتی پنل و کنترل ابزار های آن


مجید آرتا

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

Mybtn = Sender

این کد یعنی چی؟

 

این فیلم رو ببینید عملا متوجه کاربردش میشید  :)

http://answercenter.ir/topic/2807-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-tag-%D9%88-sender-%D8%AF%D8%B1-multi-panel/

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

 

به نام خدا

سلام دوستان عزیز بیسیک 4 آندروید دات اُ آر جی

عیدتون مبارک و طاعات و عباداتتون مقبول درگاه حق

دوستان دمه عیدی گفتم یکم بهتون حال داده باشم و یک سورس نسبتا خفن رو بهتون بدم و برم پی زندگیم :دی

خب دوستان قطعا همتون ساختن مولتی پنل رو یاد دارید و میتونید خیلی راحت بسازیدش به اندازه N  پنل :eynak: ولی خب این N  پنل طبیعتا یکسری اجزا داخلش هست که نیاز به کنترل کردن داره و دوست دارید با کلیک رو هر آیتم یک کار متفاوت انجام بدید

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

خب برای کنترل کردن اشیا ما از رویداد اون شی استفاده میکنیم و مثلا ما 100تا Button  داریم و یک رویداد براشون به اسم btn_Click تعریف کردیم که طبق تگ و سندر اینجا عمل میکنیم ( استاندارد).خب حالا اومدیم ما توی مولتی پنل به جزء دکمه یک شی دیگه مثل CheckBox  یا  SeekBar  داشتیم.خب برای اینکه بتونیم اینو کنترل کنیم باید رویداد براش بنویسیم ؟ حالا رویداد هم بنویسیم ولی من دوست دارم با کلیک روی دکمه چک باکسم یا سیک بارک تغییر کنه.برای اینکار شما توی رویداد btn_Click  نمیتونید اینجوری بنویسید :

Sub btn_Click
 Dim MyBtn As Button
 MyBtn = Sender
 ''''''''''
 Dim MyCheck As CheckBox
 MyCheck.Checked = True
End Sub

اینجور بگم که به این حالت نمیشه.خب چطور بتونیم یک ویو رو به وسیله یک ویو دیگه در مولتی پنل کنترل کنیم؟

چطور بتونیم بین اشیایی که به صورت داینامیک یا پویا ساخته شده پیمایش کنیم ؟

به این صورت که شما به وسیله تابع GetAllViewsRecursive مربوط به اکتویتی میتونید تمامی اشیا رو بگیرید و با استفاده از شرط های مناسب کارتون رو انجام بدید.

ببینید کد دکممون به چه شکله :

Sub btn_Click
	Dim Mybtn As Button
	Mybtn = Sender
	GetTag = Mybtn.Tag
	Dim Cur As Cursor
	Cur = MyBank.ExecQuery("SELECT * FROM Dynamic WHERE id="&Mybtn.Tag)
	Cur.Position = 0
	For Each v As View In Activity.GetAllViewsRecursive
	  If v Is CheckBox Then
	  	Dim Check As CheckBox = v
	    If Check.Tag = GetTag Then
	   Check.Checked = Not(Check.Checked)
	   End If
	  End If
	 Next
End Sub

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

1

2

3

.

.

n

کد بالا چه کاری انجام میده ؟

میاد دکمه ای که کلیک میشه رو تگش رو میزاره توی آیدی دیتابیس و اطلاعات همون ردیف دیتابیس رو  میشه گرفت ولی ما اینجا اطلاعاتی نمیگیریم.طبق مثال با چک باکس.اما با سیک بار میتونیم از دیتابیس برای Value  اون اطلاعاتی گرفت.

خب بعد کلیک میاد تمامی اجزای اکتویتی رو میگیره و شرط قرار میدیم که اگه ویو مورد نظر چک باکس هستش و اگه تگ مورد نظر ما هستش بیاد این عملو انجام بده :

	   Check.Checked = Not(Check.Checked)

اگه تیک خورده باشع تیکش برداشته میشه و بالعکس.

خب از همین جا بگم غضه نخورید سورس رو واستون قرار میدم.

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

اینم عیدی من به شما :crazy:

(نکته : بنده از دیتابیس یک برنامه دیگه استفاده کردم که ستون های اضافی داره اصلا به مغزتون فشار نیارید هیچ جای برنامه بکار برده نشده و نمیشه :دی )

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

موفق باشید.

 

لینک فایل :

http://s3.picofile.com/file/8200995600/Multi_Panel_va_CheckBox.rar.html

رمز فایل چنده؟؟

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

سلام

میتونستید این وسال رو بدون نقل قول کردن هم بپرسید :)

قوانین انجمن رو هم مطالعه نکردید که بدونید رمز کلیه فایل ها چیه :)

 

رمز فایل : basic4android.org

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

  • 1 ماه بعد...

اساتید می خواستم بدونم آیا برای ادیت تکست هم این کار امکان پذیره؟

یعنی با تغییر متن ادیت تکس روی مولتی پنل بفهمیم کدوم متن تغییر کرده؟

یه نمونه کد کوچک می تونید قرار بدهید

ممنون

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

اساتید می خواستم بدونم آیا برای ادیت تکست هم این کار امکان پذیره؟

یعنی با تغییر متن ادیت تکس روی مولتی پنل بفهمیم کدوم متن تغییر کرده؟

یه نمونه کد کوچک می تونید قرار بدهید

ممنون

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

Sub edittext1_TextChanged (Old As String, New As String)
	Dim e As EditText
	e=Sender
	
	Msgbox(e.Text,"")
End Sub

این میاد در لحظه ، هرچی که داخل ادیت تکست نوشته میشه مسیج باکس میده ، اگه میخواین اینجوری نباشه ، میتونید یه متغیر داخل ساب گلوبال تعریف کنید و e.text رو بدید به اون متغیر تا متن رو نگه داره.

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

  • 5 ماه بعد...

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

اینم عیدی من به شما :crazy:

 

سلام استاد آرتا

این عیدی که فرمودید کی ان شاءالله قرارش میدید؟!!

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

سلام استاد آرتا

این عیدی که فرمودید کی ان شاءالله قرارش میدید؟!!

سلام

عیدی همین سورسی بود که گذاشتم ولی باشه فرصت کنم یه نمونه از چیزی که میخوایید قرار میدم.

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

  • 3 هفته بعد...

من کد رو اجرا میکنم خطای زسرو میذه::

 

 

Parsing code.                           0.00
Compiling code.                         0.02
Compiling layouts code.                 0.01
Generating R file.                      Error
AndroidManifest.xml:14: error: Error: No resource found that matches the given name (at 'icon' with value '@drawable/icon').
لینک ارسال
به اشتراک گذاری در سایت های دیگر

این خطا بیشنر به خاطر پایین بودن api  داده میشه

اگه از api 8  استفاده می کنید که بهتره از 14 به بالا استفاده کنید بهتره

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

  • 3 هفته بعد...

ببخشید من متوجه نمیشم...من میخوام وقتی یه رادیو باتن توی مولتی پنل انتخاب شد تگ اون مولتی پنل رو بهم بده!

باید توی کدوم رویداد و چ کدهایی بنویسم؟؟

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

ببخشید من متوجه نمیشم...من میخوام وقتی یه رادیو باتن توی مولتی پنل انتخاب شد تگ اون مولتی پنل رو بهم بده!

باید توی کدوم رویداد و چ کدهایی بنویسم؟؟

اینم که ظاهرا طبق معمول بی جواب موند!!

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

اینم که ظاهرا طبق معمول بی جواب موند!!

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

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

بسیار ممنون از جناب اقای ارتا.... :DD:

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

  • 10 ماه بعد...

بسمه تعالی

با سلام خدمت اساتید

یه نگاهی به این بندازید
من لیبل رو فیتلر میکنم و میخوام به text ش مقدار بدم text باتن هایی که تگشون برابر تگ لیبل هست هم تغییر میکنن در مولتی پنل چرا؟

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

	Private Button1 As Button
	Private Button2 As Button
	Private Button3 As Button
	Private Button4 As Button
	Private Label1 As Label
	Private Label2 As Label
	Private Label3 As Label
	Private Label4 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("l1")
	Button1.Tag=1
	Button2.Tag=2
	Button3.Tag=3
	Button4.Tag=4
	
	Label1.Tag=1
	Label2.Tag=2
	Label3.Tag=3
	Label4.Tag=4
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub Button1_Click
	Dim tag As Int
	Dim Mybtn As Button
	Mybtn = Sender
	tag = Mybtn.Tag
	Log(tag)
	For Each v As View In Activity.GetAllViewsRecursive
		If v Is Label Then
			Dim myLabel As Label = v
			If myLabel.Tag = tag Then
				myLabel.Text="123"
			End If
		End If
	Next
End Sub

Sub Button2_Click
	Dim tag As Int
	Dim Mybtn1 As Button
	Mybtn1 = Sender
	tag = Mybtn1.Tag
	Log(tag)
	For Each v As View In Activity.GetAllViewsRecursive
		If v Is Label Then
			Dim myLabel As Label = v
			If myLabel.Tag = tag Then
				myLabel.Text="456"
			End If
		End If
	Next
End Sub


 

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

در 22 ساعت قبل، seyed_27 گفته است :

بسمه تعالی

با سلام خدمت اساتید

یه نگاهی به این بندازید
من لیبل رو فیتلر میکنم و میخوام به text ش مقدار بدم text باتن هایی که تگشون برابر تگ لیبل هست هم تغییر میکنن در مولتی پنل چرا؟


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

	Private Button1 As Button
	Private Button2 As Button
	Private Button3 As Button
	Private Button4 As Button
	Private Label1 As Label
	Private Label2 As Label
	Private Label3 As Label
	Private Label4 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("l1")
	Button1.Tag=1
	Button2.Tag=2
	Button3.Tag=3
	Button4.Tag=4
	
	Label1.Tag=1
	Label2.Tag=2
	Label3.Tag=3
	Label4.Tag=4
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub Button1_Click
	Dim tag As Int
	Dim Mybtn As Button
	Mybtn = Sender
	tag = Mybtn.Tag
	Log(tag)
	For Each v As View In Activity.GetAllViewsRecursive
		If v Is Label Then
			Dim myLabel As Label = v
			If myLabel.Tag = tag Then
				myLabel.Text="123"
			End If
		End If
	Next
End Sub

Sub Button2_Click
	Dim tag As Int
	Dim Mybtn1 As Button
	Mybtn1 = Sender
	tag = Mybtn1.Tag
	Log(tag)
	For Each v As View In Activity.GetAllViewsRecursive
		If v Is Label Then
			Dim myLabel As Label = v
			If myLabel.Tag = tag Then
				myLabel.Text="456"
			End If
		End If
	Next
End Sub



 

حل شد

با این تکه کد

	For Each v As View In sv.Panel.GetAllViewsRecursive
		If GetType(v)="android.widget.TextView" Then

			If v.Tag=Mybtn.Tag Then
				Dim lb As Label=v
				lb.Text=Mybtn.Tag
				
			End If
		End If
	Next


 

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

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

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

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

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