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

اضافه به علاقه مندی ها از طریق کلیک روی Button


parsixa

سوال

سلام خسته نباشید ، نماز روزه هاتون قبول باشه انشاالله :)

 

از محضر اساتید یه سوال داشتم ، ممنون میشم راهنمایی بفرمایید

 

من الان میتونم از طریق ListView_ItemLongClick یک آیتم لیست ویو رو به علاقه مندی ها اضافه کنم ، مکانیسم عملش رو هم که قطع به یقین میدونید " با کلیک طولانی روی آیتم لیست ویو اون به قسمت علاقه مندی ها اضافه میشه "

 

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

 

من واسه لیست ویو _ آیتم لانگ کلیک از این کد استفاده میکردم :

cur = sql1.ExecQuery("SELECT * FROM db")
		cur.Position = Value-1
		Dim fave As Int= cur.GetInt("fave")
		Dim num As Int=cur.GetInt("id")
		If fave = 0 Then		
			sql1.ExecNonQuery("UPDATE db SET fave=1 WHERE id=" & num)
			ToastMessageShow("به علاقه مندی ها اضافه شد!!!",False)
		Else
			sql1.ExecNonQuery("UPDATE db SET fave = 0 WHERE id=" & num)
			ToastMessageShow("از علاقه مندی ها حذف شد!", False)
		End If	
	
	End If 

اما این کد رو واسه همون دکمه مورد نظر خودم که کپی میکنم متاسفانه کار نمیده ...

 

ممنون میشم راهنمایی کنید ...

 

 

 

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

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

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

باور کنید این کد جواب خودش پس داده و مشکلی نداره 

میدونم برادر ولی در استفاده از تکنیک مولتی پنل ایشون از لیست وییو استفاده کردن

:gol:

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

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

یعنی تو 

Sub Process_Globals
	Dim s As SQL
	Dim meghdar As String

End Sub

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

و مقدار meghdar  در واقع همون fasl شما میشه و در مورد 

dim cr as cursor

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

فک کنم یه کم گیجت کردم 

سوالی یود بگید ( البته گذاشتن کد کامل اصلا خوب نیست چون شما کد نویسی یادنمیگرید بلکه فقط کارتون را میفته)

 

 

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

Sub Button1_Click 

cur = tarfand.mysql.ExecQuery("SELECT * FROM ctabels WHERE list = '" & tarfand.m & "'")
cur.Position = 0

If cur.GetInt("favarite") = 0 Then
	tarfand.mysql.ExecNonQuery("UPDATE ctabels set favarite = 1 WHERE list = '" & tarfand.m & "'")

	ToastMessageShow("ok",False)
Else
	tarfand.mysql.ExecNonQuery("UPDATE ctabels set favarite = 0 WHERE list = '" & tarfand.m & "'")

	ToastMessageShow("outed",False)
End If
	
End Sub

و همه کارهایی رو که گفتید هم انجام دادم منتهی موقع کلیک روی دکمه این ارور رو میده 

android.database.cursorIndexOutOfBoundsException: Index 0 requested with a size of 0 continue ? 
لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما باید نسبت به سورس خودتون Value-1 رو به عدد مورد نظر تغغیر بدید

 

درواقع Value-1 مشخص کننده عدد سطر دیتابیس شما هست

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

شما باید نسبت به سورس خودتون Value-1 رو به عدد مورد نظر تغغیر بدید

 

درواقع Value-1 مشخص کننده عدد سطر دیتابیس شما هست

 

حس میکنم متوجه نشدید !  :(

 

من میخوام این کد هارو توی Button1_click اضافه کنم ، که اصلا مقدار Value رو قرمز رنگ نشون میده توی اون ساب ! و همچین چیزی رو قبول نمیکنه ! من میخوام یک دکمه در قسمت نمایش متنم پیاده کنم که با کلیک روی اون دکمه مطلب به لیست علاقه مندی اضافه بشه ! واسه لیست ویو نمیخوام ! متوجه شدید یا با اسکرین شات توضیح بدم ؟؟؟؟؟

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

برادر من شما متوجه منظور بنده نشدید

معلومه که خطا میده چون اصلان همچین داده ای رو در رویداد click دکمه نمیشناسه

 

1.این دستور Value-1 در رویداد longclick یک عدد برمیگردونه

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

 

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

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

برادر من شما متوجه منظور بنده نشدید

معلومه که خطا میده چون اصلان همچین داده ای رو در رویداد click دکمه نمیشناسه

1.این دستور Value-1 در رویداد longclick یک عدد برمیگردونه

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

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

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

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

شما نحوه فراخوانی با دیتابیس رو یاد گرفتبد ؟

شما چطور ازلاعات رو فراخوانی می کنید؟

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

شما نحوه فراخوانی با دیتابیس رو یاد گرفتبد ؟

شما چطور ازلاعات رو فراخوانی می کنید؟

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

شما برای روش اگزکوئری exquery توضیح بدید پیاده کردن دکمه علاقه مندی رو

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

شما در دستور بالا cur.Position برابر با id همون مطلب بذارید مشکلتون حل میشه

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

شما در دستور بالا cur.Position برابر با id همون مطلب بذارید مشکلتون حل میشه

خیلی ممنون و سپاس گزارم بابت محبتتون ، مطالب از دیتا بیس شامل ۸۰ تا میشه که همه توی یک اکتیویتی لود میشه

Cur.position = id

اینشکل میشه؟

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

یه توضیحی بهتون بدم این id درواقع داره سطر رکورد جدول رو بهتون نشون میشه

حتما حواستون باشه که id برابر با همون پنل توضیحاتی که توش هستید باشه

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

سلام شرمنده که دیر جواب میدم 

اینو برات نوشتم 

sub btn_click
dim b as button
b=sender

dim cur as cursor
cur=s.ExecQuery("select * from tbl1 where fasl="& b.tag) 
cur.positon=0

if cur.getint("Neshan")=0 then
s. ExeNonQury("updadte tbl1 set neshan=1 where fasl="& b.tag)
ToastMessageShow("به علاقه مندی ها اضافه شد!!!",False)
else
s. ExeNonQury("updadte tbl1 set neshan=0 where fasl="& b.tag)
ToastMessageShow("از علاقه مندی ها حذف شد!", False)
end if
end sub

neshan  اسم ستونی که تو دیتایس قبلا وارد کردی و ازنوع اینتیجر و مقدارشم پیش فرض صفر 

fasl اسم فصل هات 

اون s هم از نوع sql و توهمین اکتیوتی تعریف کردم 

خدایش این دیگه کار نکنه  یه سرویس خارج از زمین میزنم 

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

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

سلام اینو تست کن

Dim cur As Cursor
		cur = Main.s.ExecQuery("SELECT * FROM Tbl1")
		cur.Position = Main.Fasl - 1
		Dim fave As Int= cur.GetInt("Neshan")
		If fave = 0 Then		
			Main.s.ExecNonQuery("UPDATE Tbl1 SET Neshan=1 WHERE Fasl=" & Main.Fasl)
			ToastMessageShow("به علاقه مندی ها اضافه شد!!!",False)
		Else
			Main.s.ExecNonQuery("UPDATE Tbl1 SET Neshan = 0 WHERE Fasl=" & Main.Fasl)
			ToastMessageShow("از علاقه مندی ها حذف شد!", False)
		End If	
	
	

Main همون اکتیویتی اول هست که عناوین توش هست

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

سلام شرمنده که دیر جواب میدم 

اینو برات نوشتم 

sub btn_click
dim b as button
b=sender

dim cur as cursor
cur=s.ExecQuery("select * from tbl1 where fasl="& b.tag) 
cur.positon=0

if cur.getint("Neshan")=0 then
s. ExeNonQury("updadte tbl1 set neshan=1 where fasl="& b.tag)
ToastMessageShow("به علاقه مندی ها اضافه شد!!!",False)
else
s. ExeNonQury("updadte tbl1 set neshan=0 where fasl="& b.tag)
ToastMessageShow("از علاقه مندی ها حذف شد!", False)
end if
end sub

neshan  اسم ستونی که تو دیتایس قبلا وارد کردی و ازنوع اینتیجر و مقدارشم پیش فرض صفر 

fasl اسم فصل هات 

اون s هم از نوع sql و توهمین اکتیوتی تعریف کردم 

خدایش این دیگه کار نکنه  یه سرویس خارج از زمین میزنم 

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

این کد مربوط به مولتی پنل هست

 

شما که tag رو مقدار دهی نکردی

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

سلام اینو تست کن

Dim cur As Cursor
		cur = Main.s.ExecQuery("SELECT * FROM Tbl1")
		cur.Position = Main.Fasl - 1
		Dim fave As Int= cur.GetInt("Neshan")
		If fave = 0 Then		
			Main.s.ExecNonQuery("UPDATE Tbl1 SET Neshan=1 WHERE Fasl=" & Main.Fasl)
			ToastMessageShow("به علاقه مندی ها اضافه شد!!!",False)
		Else
			Main.s.ExecNonQuery("UPDATE Tbl1 SET Neshan = 0 WHERE Fasl=" & Main.Fasl)
			ToastMessageShow("از علاقه مندی ها حذف شد!", False)
		End If	
	
	
Main همون اکتیویتی اول هست که عناوین توش هست

بابت کد مرسی ، ولی من چندتا اکتیویتی دارم ک عناوین مختلف توش هست بعد واسه پیاده کردن صفحه علاقه مندی به مشکل نمیخورم؟

 

_________________

 

همین الان تست کردم جواب نمیده به این خط cur.Position = Main.Fasl - 1 گیر میده ! (توجه کنید که من main رو جایگزین کردم با اکتیویتی عناوینم و Fasl رو هم با id جایگزین کردم)

 

توجه کنید که من میتونم اضافه به علاقه مندی رو از طریق Listview_ItemLongClick پیاده کنم اما این روش به دردم نمیخوره میخوام از طریق رویداد Button_click این کار رو انجام بدم ، 

کد مربوط به این رویداد چیه ؟؟ مرسی ازشما

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

بفرمایید من خودم اینو اکتیوتی نمایش متن قرار دادم و جواب هم داده 

Sub fav_Click
	
cr = manu.s.ExecQuery("select * from tbbookali where onvan = '" & manu.meghdar & "'")
cr.Position = 0

If cr.GetInt("faevorit") = 0 Then
	manu.s.ExecNonQuery("UPDATE tbbookali set faevorit = 1 WHERE onvan = '" & manu.meghdar & "'")
	fav.Bitmap = LoadBitmap(File.DirAssets,"star.png")
	ToastMessageShow("به علاقه مندی ها اضافه شد",False)
Else
	manu.s.ExecNonQuery("UPDATE tbbookali set faevorit = 0 WHERE onvan = '" & manu.meghdar & "'")
	fav.Bitmap = LoadBitmap(File.DirAssets,"ic_action_star.png")
	ToastMessageShow("از علاقه مندی ها حذف شد",False)
End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

بفرمایید من خودم اینو اکتیوتی نمایش متن قرار دادم و جواب هم داده 

Sub fav_Click
	
cr = manu.s.ExecQuery("select * from tbbookali where onvan = '" & manu.meghdar & "'")
cr.Position = 0

If cr.GetInt("faevorit") = 0 Then
	manu.s.ExecNonQuery("UPDATE tbbookali set faevorit = 1 WHERE onvan = '" & manu.meghdar & "'")
	fav.Bitmap = LoadBitmap(File.DirAssets,"star.png")
	ToastMessageShow("به علاقه مندی ها اضافه شد",False)
Else
	manu.s.ExecNonQuery("UPDATE tbbookali set faevorit = 0 WHERE onvan = '" & manu.meghdar & "'")
	fav.Bitmap = LoadBitmap(File.DirAssets,"ic_action_star.png")
	ToastMessageShow("از علاقه مندی ها حذف شد",False)
End If
End Sub

 

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

 

اگر ممکنه درباره این موارد کمی توضیح بدید : 

 

dim cr as cursor باید نوشته بشه ؟؟؟ یا نه نمیخواد ؟؟

 

اون s که توی خط اول کد بعد از menu نوشته شده جریانش چیه ؟؟

 

menu همون حکم لیست عناوین رو داره دیگه ؟؟ 

 

و همچنین meghdar رو کجا باید تعریف کرد

 

________________________________________

 

 

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

android.database.cursorIndexOutOfBoundsException: Index 0 requested with a size of 0 continue ? 

این خطا رو میزنه !!!!! 

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

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

یعنی تو 

Sub Process_Globals
	Dim s As SQL
	Dim meghdar As String

End Sub

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

و مقدار meghdar  در واقع همون fasl شما میشه و در مورد 

dim cr as cursor

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

فک کنم یه کم گیجت کردم 

سوالی یود بگید ( البته گذاشتن کد کامل اصلا خوب نیست چون شما کد نویسی یادنمیگرید بلکه فقط کارتون را میفته)

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

بایگانی شده

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

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

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