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

ارور لیست ویو


HAMEDDDR

سوال

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

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

a9_%D8%A7%D8%B1%D9%88%D8%B1_%D8%AC%D8%AF

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

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

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

ارور رو به خط ۸۵ گرفته. این خط چیزی نداره که. یه جای دیگه شاید به خطا خورده. کدهای قبلش چیه؟

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

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

ارور رو به خط ۸۵ گرفته. این خط چیزی نداره که. یه جای دیگه شاید به خطا خورده. کدهای قبلش چیه؟

Sub Process_Globals
Dim SQl1 As SQL
Dim cursor1 As Cursor
Dim Khandan As String
	Dim TenRecordPlus As String = "20"
End Sub

Sub Globals
'	Dim TenRecordPlus As String = "10"
	Dim cur1 As Cursor
'	Private sv As ScrollView
'	Private Label1 As Label
	'Dim size As Int =0
	

	Dim cur1 As Cursor
	Private sv As ScrollView
	Private Label1 As Label
	Dim size As Int =0
	Dim i As Int

	Private ListView1 As ListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Activity.LoadLayout("onavansv")
ToastMessageShow("mahak application",False)
ToastMessageShow("[email protected]",True)

	Dim p1 As Panel


'	If FirstTime Then
	Activity.LoadLayout("onavansv")
	
	If FirstTime Then
If File.Exists(File.DirInternal,"book.db")  = False Then
			File.Copy(File.DirAssets,"book.db",File.DirInternal,"book.db")
		End If
		SQl1.Initialize(File.DirInternal,"book.db",False)
		cur1 = SQl1.ExecQuery2("SELECT * FROM book ORDER BY id LIMIT ?",Array As String(20))
		For i = 0 To cur1.RowCount -1
			cur1.Position = i
		
			p1.Initialize("")
			sv.Panel.AddView(p1,2%x,size,96%x,90dip)
			size = size + 95dip
			p1.LoadLayout("Fehrest")
		ListView1.Tag = i
'			ToastMessageShow("لود شدن 10 اینپیتنم  دیگر","")
			ListView1.AddSingleLine(cur1.GetString("Name"))
		'	Label1.TextColor = Colors.White
			'Label1.TextSize = 17
		ListView1.Color=Colors.White
			ListView1.SingleLineLayout.Label.TextColor=Colors.Black
			ListView1.SingleLineLayout.Label.TextSize=14
			ListView1.SingleLineLayout.Label.Gravity=Gravity.CENTER
			
		Next
		cur1.Close
		sv.Panel.Height = size
	End If
	sv.Panel.Color = Colors.Transparent
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub
Sub sv_ScrollChanged(Position As Int)
	If sv.ScrollPosition + sv.Height = sv.Panel.Height  Then
		SQl1.Initialize(File.DirInternal,"book.db",False)
		ProgressDialogShow("لطفا صبر کنید")
	cur1 = SQl1.ExecQuery2("SELECT * FROM book OFFSET LIMIT ?,?",Array As String(TenRecordPlus,20))
'	TenRecordPlus=TenRecordPlus+20
	
		'==========================================================
		
		For i = 0 To  cur1.RowCount -1
			cur1.Position = i
			Dim p1 As Panel
			p1.Initialize("")
			sv.Panel.AddView(p1,2%x,size,96%x,90dip)
			p1.LoadLayout("Fehrest")
			size = size + 95dip
			ListView1.Tag = i
			ListView1.AddSingleLine(cur1.GetString("Name"))
'			ToastMessageShow("لود شدن 10 اینپیتنم  دیگر","")
			'ListView1.TextColor = Colors.White
'			Label1.TextSize = 17
			ListView1.Color=Colors.White
			ListView1.SingleLineLayout.Label.TextColor=Colors.Black
			ListView1.SingleLineLayout.Label.TextSize=14
			ListView1.SingleLineLayout.Label.Gravity=Gravity.CENTER
		Next
		'=========================================================
		
		cur1.Close
		sv.Panel.Height = size
		DoEvents
		If IsNumber(TenRecordPlus) = True Then
			
			TenRecordPlus = TenRecordPlus + 20
			
		End If
	End If



End Sub


Sub Label1_Click
	
	
End Sub

Sub pnl_Click
	
	
End Sub

Sub lbl_Click
	
End Sub

Sub Panel1_Touch (Action As Int, X As Float, Y As Float)
	
	
End Sub

Sub ListView1_ItemClick (Position As Int, Value As Object)
		TenRecordPlus=Value
	
	StartActivity(khandandastanha)
	
End Sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
	
	
		
	If (KeyCode = KeyCodes.KEYCODE_BACK) Then
	
		Activity.Finish
		StartActivity(Main)
		Return True
		
	End If
	
	
	
	
	
	
End Sub

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

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

خیلی کدنویسی تون ناشیانه اس عزیز.:fekr:

خیلی از اصولا رو رعایت نکردین. تو کد زیر شما مگه یه با توی oncreate اینشیالایز sql رو انجام ندادین؟ دو باره تو هربار که اسکرول تموم میشه شما میاین و اینشیالایز میکنید این کارو به هیچ وجه نکنید.

Sub sv_ScrollChanged(Position As Int)
	If sv.ScrollPosition + sv.Height = sv.Panel.Height  Then
		SQl1.Initialize(File.DirInternal,"book.db",False)
		ProgressDialogShow("لطفا صبر کنید")
	cur1 = SQl1.ExecQuery2("SELECT * FROM book OFFSET LIMIT ?,?",Array As String(TenRecordPlus,20))
'	TenRecordPlus=TenRecordPlus+20
'==========================================================
For i = 0 To  cur1.RowCount -1

نکته بعدی اینه که شما تو oncreate وقتی آیتمها رو گرفتین cur1.Close زدین بعد توی sv_ScrollChanged دوباره اونو مقدار دهی کردین. خب معلومه مشکل داره این. تا موقعی که همه آیتمهاتون لود نشدن نباید کرزر رو ببندین.

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

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

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

خیلی کدنویسی تون ناشیانه اس عزیز.:fekr:

خیلی از اصولا رو رعایت نکردین. تو کد زیر شما مگه یه با توی oncreate اینشیالایز sql رو انجام ندادین؟ دو باره تو هربار که اسکرول تموم میشه شما میاین و اینشیالایز میکنید این کارو به هیچ وجه نکنید.


Sub sv_ScrollChanged(Position As Int)
	If sv.ScrollPosition + sv.Height = sv.Panel.Height  Then
		SQl1.Initialize(File.DirInternal,"book.db",False)
		ProgressDialogShow("لطفا صبر کنید")
	cur1 = SQl1.ExecQuery2("SELECT * FROM book OFFSET LIMIT ?,?",Array As String(TenRecordPlus,20))
'	TenRecordPlus=TenRecordPlus+20
'==========================================================
For i = 0 To  cur1.RowCount -1

نکته بعدی اینه که شما تو oncreate وقتی آیتمها رو گرفتین cur1.Close زدین بعد توی sv_ScrollChanged دوباره اونو مقدار دهی کردین. خب معلومه مشکل داره این. تا موقعی که همه آیتمهاتون لود نشدن نباید کرزر رو ببندین.

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

کد کلان عوض کردم 

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

Sub Activity_Create(FirstTime As Boolean)
	'Activity.LoadLayout("onavansv")
ToastMessageShow("mahak application",False)
ToastMessageShow("[email protected]",True)

	Dim p1 As Panel


'	If FirstTime Then
	Activity.LoadLayout("onavansv")
	
'	If FirstTime Then
If File.Exists(File.DirInternal,"book.db")  = False Then
			File.Copy(File.DirAssets,"book.db",File.DirInternal,"book.db")
		End If
	If SQl1.IsInitialized = False Then
		SQl1.Initialize(File.DirInternal,"book.db",False)
	End If
		
	
		
			listV.Initialize(Me,"test")
			Activity.AddView(listV.AsView,0,0,100%x,100%y)
			cur1 = SQl1.ExecQuery("SELECT * FROM book LIMIT 10")
			For i = 0 To cur1.RowCount - 1
				cur1.Position = i
				Dim p1 As Panel
				p1.Initialize("")
				listV.Add(p1,220dip,cur1.GetInt("id"))
				p1.LoadLayout("l1")
				lbl.Text = cur1.GetString("Name")
			Next
			cur1.Close
	
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub
Sub test_Position(Position As Int)
	If Position + listV.Height >= listV.PanelHeight Then
		ProgressDialogShow("لطفا صبر کنید")
		cur1 =SQl1.ExecQuery2("SELECT * FROM book LIMIT ?,10",Array As String(total))
		total = total + 10
		For i = 0 To cur1.RowCount - 1
			cur1.Position = i
			Dim p1 As Panel
			p1.Initialize("")
			listV.Add(p1,220dip,cur1.GetInt("id"))
			p1.LoadLayout("l1")
			lbl.Text = cur1.GetString("Name")
		Next
		cur1.Close
		ProgressDialogHide
	End If
End Sub

کد عوض کردم جمع جورتر شده

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

بایگانی شده

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

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

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