اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


arfan2x

مشکل با تگ و sender

10 ارسال در این موضوع قرار دارد

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

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

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

 

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

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 چه طوری متن رو از دیتابیس بگیرم

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


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

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

توی حلقه باید تگ پنل رو برابر 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 واسم مشکل شده دیگه بیخیال شدم.

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

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


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

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری