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

قراردادن ویو دلخواه در پنجره دیالوگ


est931

سوال

سلام

برای اولین کار با بیسیک فور اندروید

یک پروژه با بانک اطلاعاتی رو شروع کردم و کم کم دارم میبرم جلو

الان در حالتی که در تصویر می بینید هست

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

برای این کار در اینترنت جستجو کردم و کدهای زیر رو پیدا کردم

 

	Private xui As XUI
  Private dialog As B4XDialog
  
Sub btnCustom_Click
	sp2.cmbBox.Add("تولد")
	Dim p As B4XView = xui.CreatePanel("")
	p.SetLayoutAnimated(0, 0, 0, GetDeviceLayoutValues.Width- 20%x, GetDeviceLayoutValues.Height- 73%y)
	p.LoadLayout("pop")
	dialog.PutAtTop = True 'put the dialog at the top of the screen
	Wait For (dialog.ShowCustom(p, "OK", "", "CANCEL")) Complete (Result As Int)
	If Result = xui.DialogResponse_Positive Then
		dialog.Show(txtName.Text & " " & txtName.Text , "OK", "", "")
	End If
End Sub

این کدها رو تغییر دادم و ظاهرش رو در لایوت  CustomDialog مربوطه طراحی کردم

منتهی وقتی spinner  اضاف کردم به فرم  هر چی آیتم بهش اضاف می کنم نمایش داده نمیشه

 

چطور میشه ویوهای دلخواه در پنجره دیالوگ نمایش داده بشن    ؟  text edit  ها مشکلی ندارن مشکل اصلی با spinner هست

 

 

Screenshot_2020_07_17_20_47_46.png

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

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

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

در 38 دقیقه قبل، est931 گفته است :

 

باید با دستور panel.GetView به اسپینر دسترسی پیدا کنید و اونو ویرایش کنید. یه سورس ساده نوشتم که اسپینر توی دیالوگ هست و بهش آیتم دادم. ازش ایده بگیرید

dialog.zip

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

در 13 ساعت قبل، محمدرضا شاهپیری گفته است :

توضیح خاصی نداره دوست عزیز. شما وقتی یه لایه رو با پنل لود کنید با دستور p.GetView میتونید به آیتمهای اون  دسترسی پیدا کنید. هر ویو توی پنل یه موقعیتی داره که بهش پوزیشن اون ویو توی پنل میگن.

بله درسته

اما چطور میشه شماره اندیس ویو مورد نظر رو بدست آورد

وقتی نتیجه

	Log(p.GetView(0))

برای مثال شما نگاه می کنم این نتیجه رو میده

(B4ASpinner) anywheresoftware.b4a.objects.SpinnerWrapper$B4ASpinner{13d40659 V.ED..C. ......I. 0,0-0,0 #4}

اما  وقتی در پروژه خودم استفاده می کنم نتیجه این هست

(BALayout) anywheresoftware.b4a.BALayout{25183162 V.E..... ......ID 0,0-0,0 #18}

وقتی اندیسش رو به 1 تغییر میدم این خروجی رو میده (میخوام بدونم چطور باید بدون آزمون خطا اندیس مورد نظر رو پیدا کنم)

(B4ASpinner) anywheresoftware.b4a.objects.SpinnerWrapper$B4ASpinner{11cc01ae V.ED..C. ......I. 0,0-0,0 #22}

ممنون از وقتی که میزارید

 

 

 

 

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

در ۱ ساعت قبل، est931 گفته است :

بله درسته

اما چطور میشه شماره اندیس ویو مورد نظر رو بدست آورد

وقتی نتیجه


	Log(p.GetView(0))

برای مثال شما نگاه می کنم این نتیجه رو میده


(B4ASpinner) anywheresoftware.b4a.objects.SpinnerWrapper$B4ASpinner{13d40659 V.ED..C. ......I. 0,0-0,0 #4}

اما  وقتی در پروژه خودم استفاده می کنم نتیجه این هست


(BALayout) anywheresoftware.b4a.BALayout{25183162 V.E..... ......ID 0,0-0,0 #18}

وقتی اندیسش رو به 1 تغییر میدم این خروجی رو میده (میخوام بدونم چطور باید بدون آزمون خطا اندیس مورد نظر رو پیدا کنم)


(B4ASpinner) anywheresoftware.b4a.objects.SpinnerWrapper$B4ASpinner{11cc01ae V.ED..C. ......I. 0,0-0,0 #22}

ممنون از وقتی که میزارید



 

 



 

 

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

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

در 35 دقیقه قبل، est931 گفته است :

سلام

برای اولین کار با بیسیک فور اندروید

یک پروژه با بانک اطلاعاتی رو شروع کردم و کم کم دارم میبرم جلو

الان در حالتی که در تصویر می بینید هست

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

برای این کار در اینترنت جستجو کردم و کدهای زیر رو پیدا کردم

شما اسپینر رو کجا به دیالوگ اضافه کردین؟ من تو این کدها نمیبینم که اسپینر به دیالوگ اضفه شده باشه

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

در 53 دقیقه قبل، محمدرضا شاهپیری گفته است :

شما اسپینر رو کجا به دیالوگ اضافه کردین؟ من تو این کدها نمیبینم که اسپینر به دیالوگ اضفه شده باشه

اسپینر (کمبو باکس) رو تو لایوت دیالوگ اضاف کردم

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

 

این کدها رو هم اضاف کردم

	Private dialog As B4XDialog
	Private sp2 As B4XComboBox

بقیه هم مثل کد های بالا هست

بعد که یه ایتم اضاف کردم نشون نمیده

 

sp2.cmbBox.Add("تولد")
	

 

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

ببخشید سورس گذاشته شده مشکلم رو حل کرد

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

Sub ShowDialog
	Dim xui As XUI	
	Dim p As B4XView = xui.CreatePanel("")
	p.SetLayoutAnimated(0, 0, 0, 300dip, 170dip) 'set the content size
	p.LoadLayout("dialog")
	Private spiner As Spinner=p.GetView(0)
	spiner.Add("item 1")
	spiner.Add("item 2")
	spiner.Add("item 3")
	Dim rs As ResumableSub = Dialog.ShowCustom( p, "Ok", "", "Cancel")
	Wait For (rs) Complete (Result As Int)
	If Result = xui.DialogResponse_Positive Then
		
	End If
End Sub

بویژه این قسمت 

Private spiner As Spinner=p.GetView(0)

در خصوص p.GetView(0)

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

در ۱ ساعت قبل، est931 گفته است :

ببخشید سورس گذاشته شده مشکلم رو حل کرد

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

بویژه این قسمت 

Private spiner As Spinner=p.GetView(0)

در خصوص p.GetView(0)

توضیح خاصی نداره دوست عزیز. شما وقتی یه لایه رو با پنل لود کنید با دستور p.GetView میتونید به آیتمهای اون  دسترسی پیدا کنید. هر ویو توی پنل یه موقعیتی داره که بهش پوزیشن اون ویو توی پنل میگن.

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

بایگانی شده

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

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

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