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

مشکل در لود مطلب


سیدمحمد

سوال

سلام به همه.

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

sub btn_click
dim s as button
s = sender
fasl = s.Tag
StartActivity(matlab)
End Sub

متغیر fasl از نوع string هست که در پراسس گلوبال تعریف کردم.

اما وقتی روی باتن ها کلیک میکنم این خطا رو نمایش میده:

Untitled.png

 

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

cur = main.sql.ExecQuery("SELECT * FROM table WHERE number ="&fasl1.fasl)

fasl1 همون اکتیویتی هستش که متغیر fasl رو توش تعریف کردم.

 

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

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

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

نه اقا شهاب مطالب رو یکی نمیاره.

ببینید،

من دیتابیسم رو در پنج اکتیویتی لود کردم، به این صورت که مقداری از دیتابیس رو در یک اکتیویتی لود کردم، و ما بقی رو در اکتیویتی های دیگر،

مشکل اینجاست که وقتی توی اکتیویتی مطلب میخام مطلب مورد نظرمو لود کنم،

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

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

یعنی وقتی روی آیتم اولی که در اکتیویتی دوم هست کلیک میکنم، گویا روی آیتم اول اکتیویتی اول کلیک شده.

امیدوارم متوجه شده باشید. 

خوب به نظرم ، شما یه متغیر عددی تعریف کنید توی اکتیویتی main و در ساب پراسس گلوبال

وقتی که در اکتیویتی مثلا 3 هستید و روی اون مطلب کلیک میکنید،کار زیر انجام بشه

main.myVar = 3

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

توی اکتیویتی مطالب، بیاید و به شکل زیر شرط بدید...

if main.myVar = 1 then
'load matalaeb marboot be act 1'
else if main.myVar = 2 then
'load matalaeb marboot be act 2'
else if 
.
.
.
end if

فکر میکنم مشکلتون حل بشه

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

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

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

ممنون اقا شهاب.

من کاری ک گفتینو کردم. تگ دکمه ها رو با فیلد آی دی برابر کردم و در اکتیویتی مطلب هم  با سندر لود کردم ولی اینبار به این سینتکس خطا داد:

f.png

 

واقعا بعضی اوقات با این باگ های زیاااد اعصابم میریزه به هم  :gerye:

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

سلام

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

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

متغییر fasl  از نوع رشتس ؟ یا عدد ؟

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

 

کدتونم رو هم قرار بدید تا ببینیم تا اینجای کار چیکار کردید.

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

بله این متغیر از نوع استرینگ بود و با اینکه اینتیجر کردم ، وقتی اکتیویتی مطلب میخاد باز بشه ، دوباره ارور داد ولی این بار این ارور:

 

g.png

 

که فک میکنم مربوط به پوزیشن باشه. و نمیدونم چه مقداری باید بهش بدم. هر مقداری دادم ارور داده.

اینم کد های من اقا مجید:

 

اکتیویتی فصل یک

Sub Process_Globals
	Dim fasl As Int

End Sub

Sub Globals
	Dim cur As Cursor

	Private ScrollView1 As ScrollView

	Private onvan As Label

End Sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("faslha")

	cur=menu.s.ExecQuery("SELECT * from tbl1 WHERE fasl < 6")
	 
	onvan.Text = "از تولد تا دانشگاه"
	onvan.Textcolor=Colors.Black
		
	Dim h As Int
	h = 3%y
	For I = 0 To cur.RowCount-1
	cur.Position =I
	
	
	Dim btn As Button
	btn.Initialize("btn")
	btn.SetBackgroundImage(LoadBitmap(File.DirAssets,"btn.png"))
	btn.Text=cur.GetString("onvan")
	btn.Gravity = Gravity.CENTER
	btn.Tag=cur.GetInt("fasl")
	btn.TextColor = Colors.Black
	
	
	
	ScrollView1.Panel.AddView(btn,2%x,h,96%x,18%y)
	h=h+18%y
	Next
	ScrollView1.Panel.Height = (cur.RowCount * 18%Y)+3%y

End Sub

Sub btn_Click
	Dim b As Button
	b=Sender
	fasl=b.Tag
	StartActivity(act_matlab)
End Sub

اکتیویتی فص دو

Sub Globals
	Dim cur As Cursor

	Private ScrollView1 As ScrollView

	Private onvan As Label

End Sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("faslha")

	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl BETWEEN 6 AND 11")
	
	onvan.Text = "میان قم و نجف"
	onvan.Textcolor=Colors.Black
	 
	Dim h As Int
	h = 3%y
	For I = 0 To cur.RowCount-1
	cur.Position =I
	
	
	Dim btn As Button
	btn.Initialize("btn")
	btn.SetBackgroundImage(LoadBitmap(File.DirAssets,"btn.png"))
	btn.Text=cur.GetString("onvan")
	btn.Gravity = Gravity.CENTER
	btn.Tag=cur.GetInt("fasl")
	btn.TextColor = Colors.Black
	
	
	
	ScrollView1.Panel.AddView(btn,2%x,h,96%x,18%y)
	h=h+18%y
	Next
	ScrollView1.Panel.Height = (cur.RowCount * 18%Y)+3%y
	
End Sub

Sub btn_Click
	Dim b As Button
	b=Sender
	b.Tag = fasl1.fasl
	StartActivity(act_matlab)
End Sub

همینطور که میبینید بقیه ی اکتیویتی هام مثل همن، فقط کرسر فرق میکنه.

در رویداد کلید فصل ها میبینید که آدرس فصل یک رو دادم چون متغیر "فصل"  که عدد هستش رو اونجا در پراسس گلوبال تعریف کردم.

 

اینم کد اکتیویتی مطلب

Sub Globals
	Dim cur As Cursor
	Private onvan As Label
	Private ScrollView1 As ScrollView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("act")
	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl="&fasl1.fasl)
	cur.Position = 0
	
	
	Dim label1 As Label
	label1.Initialize("")
	label1.Text=cur.GetString("matn")
	label1.Gravity=Gravity.RIGHT
	ScrollView1.Panel.AddView(label1,3%x,0,94%x,ScrollView1.Height)
	
	onvan.Text = cur.GetString("onvan")
	

End Sub

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

خب اساتید چه میفرماییید

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

:fekr:

سلام

پوزشین رو مشخص نکردید

اگر فقط یه داده هست نتیحه، 

cur.position = 0

اگر حلقه دارید هم

for i = 0 to cur.rowcount - 1
cu.position = i
'other '
next

.....

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

پوزیشن رو هم مشخص کردم اقا شهاب. بازم همون اخطارو میده.

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

اینم کدش:

Sub Globals
	Dim cur As Cursor
	Private ScrollView1 As ScrollView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("act")
	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl="&fasl1.fasl)
	
	Dim label1 As Label
	label1.Initialize("label1")
	label1.Text=cur.GetString("matn")
	label1.TextSize=21
	label1.Gravity=Gravity.RIGHT
	label1.TextColor = Colors.Black
	ScrollView1.Panel.AddView(label1,3%x,0,94%x,ScrollView1.Height)
	ScrollView1.Color= Colors.Black
	
	End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

پوزیشن رو هم مشخص کردم اقا شهاب. بازم همون اخطارو میده.

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

اینم کدش:

Sub Globals
	Dim cur As Cursor
	Private ScrollView1 As ScrollView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("act")
	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl="&fasl1.fasl)
	
	Dim label1 As Label
	label1.Initialize("label1")
	label1.Text=cur.GetString("matn")
	label1.TextSize=21
	label1.Gravity=Gravity.RIGHT
	label1.TextColor = Colors.Black
	ScrollView1.Panel.AddView(label1,3%x,0,94%x,ScrollView1.Height)
	ScrollView1.Color= Colors.Black
	
	End If
End Sub

کداتون مورد خاصی نداره از نظر من، فقط پوزیشن رو توشون نمیبینم که گفتم خدمتتون

از طرفی، فک کنم میخواین چندین مطلب مربوط به فصل رو بگیرید اما دارید توی یک لیبل، با یک بار گرفتن مطلب این کاررو میکنید، از نامگذاری کداتون که اینطور بر میاد...

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

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("act")
        ScrollView1.Initialize(1000)
	Activity.AddView(ScrollView1,0,14%Y,100%x,100%Y)
	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl="&fasl1.fasl)
        cur.Position=0
	Dim label1 As Label
	label1.Initialize("label1")
	label1.Text=cur.GetString("matn")
	label1.TextSize=21
	label1.Gravity=Gravity.RIGHT
	label1.TextColor = Colors.Black
	ScrollView1.Panel.AddView(label1,3%x,0,94%x,ScrollView1.Height)
	ScrollView1.Color= Colors.Black
	
	End If
End Sub

این کد امتحان کنید :fekr:

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

پوزیشن رو صفر قرار دادم ولی چون از اونجا که اکتیویتی زیاد دارم  

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

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

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

با ابن حال چکار باید بکنم

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

اگر متن رو برای همه مطالب یکی میاره، باید با محتوای این متغیر ور برید

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

جالبه

لطف کنید یه تصویر از بانکتون قرار بدید

سطر و ستون ها منظورمه، فقط کافیه که اسم ستون هاتون رو توی عکس بذارید

کارتون منطقی هست نسبتا و از طرفی زیاد هم منطقی نیست برای هر فصل یه اکتیویتی ساختن(البته این بحث تاپیک هم نیست)

بگیرید تصویر رو ، شاید کمکی بکنه بهمون :fekr:

 

 

سلام.

اینم نمونه بانکم. البته بانک اصلی نزدیک 130 تا فصل داره.

خیلی وقته روی این مشکل موندم.  :gerye:

 

a.png

 

پوزیشن رو هم cur.Position= fasl1.fasl قرار دادم. بازم ارور داد

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

نه اقا شهاب مطالب رو یکی نمیاره.

ببینید،

من دیتابیسم رو در پنج اکتیویتی لود کردم، به این صورت که مقداری از دیتابیس رو در یک اکتیویتی لود کردم، و ما بقی رو در اکتیویتی های دیگر،

مشکل اینجاست که وقتی توی اکتیویتی مطلب میخام مطلب مورد نظرمو لود کنم،

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

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

یعنی وقتی روی آیتم اولی که در اکتیویتی دوم هست کلیک میکنم، گویا روی آیتم اول اکتیویتی اول کلیک شده.

امیدوارم متوجه شده باشید. 

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

جالبه

لطف کنید یه تصویر از بانکتون قرار بدید

سطر و ستون ها منظورمه، فقط کافیه که اسم ستون هاتون رو توی عکس بذارید

کارتون منطقی هست نسبتا و از طرفی زیاد هم منطقی نیست برای هر فصل یه اکتیویتی ساختن(البته این بحث تاپیک هم نیست)

بگیرید تصویر رو ، شاید کمکی بکنه بهمون :fekr:

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

کدای tag و sender تون یکم ادمو گیج میکنه

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

سلام

توی اکتیویتی متنتون یه مسیج باکس بذارید ببینیم تگ رو منتقل میکنه اصن، مقار انتقال داده شده چه جوریاس..

Sub Globals
	Dim cur As Cursor
	Private onvan As Label
	Private ScrollView1 As ScrollView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("act")


msgbox(fasl1.fasl,"")


	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl="&fasl1.fasl)
	cur.Position = 0
	
	
	Dim label1 As Label
	label1.Initialize("")
	label1.Text=cur.GetString("matn")
	label1.Gravity=Gravity.RIGHT
	ScrollView1.Panel.AddView(label1,3%x,0,94%x,ScrollView1.Height)
	
	onvan.Text = cur.GetString("onvan")
	

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

سلام اقا شهاب.

توی مسیج باکس به درستی شماره های آی دی رو نشون میداد.

فقط فصل دوم همش توی مسیج باکس صفر میداد.

بقیه ی فصل ها آی دی های خودشونو میدادن.

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

سلام اقا شهاب.

توی مسیج باکس به درستی شماره های آی دی رو نشون میداد.

فقط فصل دوم همش توی مسیج باکس صفر میداد.

بقیه ی فصل ها آی دی های خودشونو میدادن.

متن بقیه فصل ها درست بود؟

فقط فصل 2 مورد داشت؟

کدهای اکتیویتی فصل 2 رو قرار بدید براتون بررسی کنیم :gol:

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

دقیقا مثل بقیه ی فصل هاست ولی جالبه که مقدار صفر میده.

 

:girl_blush:

Sub Globals
	Dim cur As Cursor

	Private ScrollView1 As ScrollView

	Private onvan As Label

End Sub

Sub Activity_Create(FirstTime As Boolean)

	Activity.LoadLayout("faslha")

	cur=menu.s.ExecQuery("SELECT * FROM tbl1 WHERE fasl BETWEEN 6 AND 11")
	
	onvan.Text = "میان قم و نجف"
	onvan.Textcolor=Colors.Black
	 
	Dim h As Int
	h = 3%y
	For I = 0 To cur.RowCount-1
	cur.Position =I
	
	
	Dim btn As Button
	btn.Initialize("btn")
	btn.SetBackgroundImage(LoadBitmap(File.DirAssets,"btn.png"))
	btn.Text=cur.GetString("onvan")
	btn.Gravity = Gravity.CENTER
	btn.Tag=cur.GetInt("fasl")
	btn.TextColor = Colors.Black
	
	
	
	ScrollView1.Panel.AddView(btn,2%x,h,96%x,18%y)
	h=h+18%y
	Next
	ScrollView1.Panel.Height = (cur.RowCount * 18%Y)+3%y
	
End Sub

Sub btn_Click
	Dim b As Button
	b=Sender
	b.Tag = fasl1.fasl
	StartActivity(act_matlab)
End Sub

خب بقیه ی فصولی که درست عمل میکنن چرا متن رو نشون نمیدن. اون پوزیشن لعنتی رو توی اکتیویتی متن چیکارش کنم اخههه؟  :gerye:

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

بایگانی شده

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

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

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