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

مشکل با تگ و sender


arfan2x

سوال

سلام وقت بخیر.

بنده یه مولتی پنل ساختم و یه لیست رو از دیتابیس می گیرم. عناوین از دیتابیس به درستی لود میشه اما مشکلم از اینجا شروع میشه که نمی تونم رویداد کلیکش رو تنظیم کنم

طوری که رو هر عنوانی که کلیک شد بره به اکتیویتی مطالب و مطلب همون رو نشون بده. لطفا راهنمایی کنید تشکر.

 

کدهایی که استفاده کردم:

Sub Activity_Create(FirstTime As Boolean)

	For i = 0 To cur.RowCount -1
	cur.Position = i
		
		Dim P As Panel
		P.Initialize("")
		ScrollView.Panel.AddView(P,3%X,top,94%X,80dip)
		P.LoadLayout("List")
		Label.Text = cur.GetString ("Onvan")
		top = top + 80dip + 3%X
		
		Panel1.Tag = i
		
	Next
	
	ScrollView.Panel.Height = top

End Sub 
  
Sub Panel1_Click
	Dim P As Panel = Sender
	P.Tag = ???????????????????????
	StartActivity(matn)
	
End Sub

حالا نمی دونم اون P.Tag رو برابر با چی قرار بدم و هچنین تو اکتیویتی matn چه طوری متن رو از دیتابیس بگیرم

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

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

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

دوست عزیز سلام.

توی حلقه باید تگ پنل رو برابر id ردیف دیتابیس بزارید

و توی رویداد کلیک مقدار p.tag میشه مقدار id همون ردیفی که کلیک شده

توی اکتویتی matn توی proccess_global یه متغیر مثلا به اسم id تعریف میکنید

بعد توی همون کلیک پنل matn.id = p.tag قرار میدید

و بعد توی اکتیوتی متن با کوئری شرطی where id = "&id ردیف مورد نظر رو دریافت میکنید

 

مخصوصا کد ندادم تا بیشتر شما رو به فکر وادار کنم و البته تحقیق اگه مثلا کوئری شرطی رو نمیدونید سرچش کنید تا متوجه بشید.(درخواست کد نکنید!)

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

سلام ممنون از پاسختون.

کارای زیر رو کردم اما بازم نمیشه. خواهشاً کدهاش رو بنویسید خیلی گیر این موضوعم

Sub Panel1_Click
	Dim p As Panel = Sender
	p.Tag = cur.Position
	p.Tag = matn.send
	StartActivity(matn)

End Sub

تو اکتیویتی متن هم یه متغیر تعریف کردم به اسم send

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

Main.sql1.Initialize(File.DirInternal, "data.db" , False)

Cur = Main.sql1.ExecQuery("SELECT * FROM book WHERE id ="&send)
Cur.Position = 0

اما خطای زیر رو می ده:

android.database.sqlite.SQLiteException: near "=": syntax error: , while compiling: SELECT * FROM book WHERE id =

لطفاً راهنمایی بفرمایید

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

سلامی دوباره. 

دوستان کسی نبود کمک کنه؟ فکر کنم فقط یه اشتباه کوچیک دارم لطفاً راهنمایی کنید.

چه کدی می خواد؟

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

سلام

موقع inintialise کردن یک اسم بدید

و موقع معرفی هر شی مثلا دکمه یا پنل که میخواید روش کلیک بشه

توی خاصیت تگش id مربوطه رو قرار بدبد

بعد یه کد به اسم view_click بنویسید و از sender استفاده کنید

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

 

    btn_add.Initialize("btn_add")

اینجا یک دکمه معرفی شده با اسم ویوی btn_add

 

 

btn_add.Tag=m.get("code_ghaza")

اینجا به اون دکمه توی تگش مقدار id خودم رو گذاشتم

 

 


Sub btn_add_Click
    Dim Send As View
    Send=Sender
    Msgbox(Send","شماره آی دییه که کلیک شده رو نشون میده")

End Sub

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

سلام مجدد

از برنامه ات یه کپی بگیر

کد زیر رو توی main  کپی کن

توی desinger  مربوط به mpanel  هم label1,label2 رو بردار

 

#Region  Project Attributes
    #ApplicationLabel: Multi Panel
    #VersionCode: 1
    #VersionName: 1.0
    '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
    Dim sql1 As SQL
End Sub

Sub Globals
    Private ScrollView1 As ScrollView
    Dim top As Int = 3%x
    'Dim Label2 As Label
    Private Panel1 As Panel
    Dim cur As Cursor
End Sub

Sub Activity_Create(FirstTime As Boolean)
    
    Activity.LoadLayout("main")
    
    If File.Exists(File.DirInternal, "data.db") = False Then
        File.Copy(File.DirAssets , "data.db" , File.DirInternal , "datab.db")
End If
    
    sql1.Initialize(File.DirInternal, "datab.db" , False)
    
    cur = sql1.ExecQuery ("Select * from TblFehrest")
    
    For i = 0 To cur.RowCount -1
        cur.Position = i
        Dim lbl_name As Label
        
        Dim p As Panel
        p.Initialize("view")
        lbl_name.Initialize("")
        ScrollView1.Panel.AddView(p,3%x,top,94%x,80dip)
        p.LoadLayout("Mpanl")
        p.AddView(lbl_name,2%x,p.top+p.Height*.15,80%x,p.Height/2)
        lbl_name.TextColor=Colors.Black
        lbl_name.TextSize=16
        lbl_name.Text = cur.GetString("Onvan")
        top = top + 80dip + 3%X
        p.Tag = i
        
    Next
    
    ScrollView1.Panel.Height = top
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub view_Click
    
'   
    Dim Send As View
    Send=Sender
    Msgbox(Send.Tag," گزینه کلیک شده")
    
    
    
'    ToastMessageShow("گزینه "&p.Tag&" کلیک شد !",False)
End Sub

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

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

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

فقط تو رو خدا اول یه آیکون برای برنامه ات بذار:3d-smileys021:

توی گزینه های کمپایل یه اسم خوب براش بزارو...:3d-smileys022:

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

سلام خدمت شما.

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

لطفاً درستش کنید. تو اون اکتیویتی متن نمی دونم چه کدی بنویسم که رو هر عنوانی که کلیک شد متن مربوطه رو نشون بده

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

بایگانی شده

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

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

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