رفتن به مطلب
  • 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

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

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

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

 

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

cur = main.s.ExecQuery("SELECT * FROM tble WHERE fasl BETWEEN 20 AND 40")

فیلد آی دی من همون fasl هستش که بیستاشو مثلا الان لود کردم.

خب من اگر روشی که گفتین رو پیاده کنم و بازم به پوزیشن صفر بدم کار بیخودی انجام دادم.

مشکل پوزیشن هست که نمیدونم چکارش کنم.

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

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

cur = main.s.ExecQuery("SELECT * FROM tble WHERE fasl BETWEEN 20 AND 40")

فیلد آی دی من همون fasl هستش که بیستاشو مثلا الان لود کردم.

خب من اگر روشی که گفتین رو پیاده کنم و بازم به پوزیشن صفر بدم کار بیخودی انجام دادم.

مشکل پوزیشن هست که نمیدونم چکارش کنم.

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

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

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

مثل اینکه باید همین کارو بکنم...

راه دیگه ای نیست...  :gerye:  :girl_blush2:  :girl_blush2:  :(

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

راه هست ولی درست و منتطقی نیست

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

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

چرا کدنویسی رو اصولی نمینویسین؟

توی دیتابیس یه فیلد ایجاد کنید بنام دسته واگر آیتم هاش روبروشون برابر با 1 بود یعنی زیرمجموعه آیتم اوله

اگر 2 بود زیر مجموعه آیتم دوم

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

مثل اینکه باید همین کارو بکنم...

راه دیگه ای نیست...  :gerye:  :girl_blush2:  :girl_blush2:  :(

 

حدود 1 ماه منم علاف شدم اخرشم نشد

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

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

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

با یک تیبل هم میشه

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

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

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

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

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

Sub Process_Globals
	Dim fasl As String

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=I+1
	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 Process_Globals
	Dim fasl As String

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=I+1
	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

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

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

ولی وقتی از اکتیویتی های دیگه، یا بهتر بگم، از فصل های دیگه وارد اکتیویتی مطلب میشم،

همون مطالب اکتیویتی اول لود میشه،

 

متوجه مشکلتون شدم عزیزم

شما تگ رو برابر list قرار بدید

و با استفاده از سندر، عدد لیست رو بفرستید به اکتیویتی دیگه

btn.Tag= cur.getInt("list")

احتمالا مشکلتون حل بشه

چون از یه تیبل استفاده میکنید، نباید مشکلی پیش بیاد ابدا :fekr:

 

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

 

متوجه مشکلتون شدم عزیزم

شما تگ رو برابر list قرار بدید

و با استفاده از سندر، عدد لیست رو بفرستید به اکتیویتی دیگه

btn.Tag= cur.getInt("list")

احتمالا مشکلتون حل بشه

چون از یه تیبل استفاده میکنید، نباید مشکلی پیش بیاد ابدا :fekr:

 

 

ممنون آقا شهاب متوجه منظورتون شدم.

اما نتونستم کدها رو درست بزنم.

باید سندر رو برابر با چه مقداری قرار بدم؟

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

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

یک نمونه خام از سورس پیوست کنید یا در پیام خصوصی ارسال کنید

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

خواهش میکنم

ببینید، با توضیحی که خدمتتون دادم، فرقی نداره توی چه اکتیویتی هستید

همونطور که میگید ستون list دقیقا کاربرد ای دی رو داره، یعنی برای هر سطر، یه ای دی مشخص وجود داره

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

از اونجایی که مقدار مشخص هست و مسلما چندین ردیف، نمیتونن نتیجه دستور Sql باشن، شما پوزیشن رو برابر با 0 قرار میدید که اولین ردیف یعنی نتیحه مطلوبمون رو بخونه...

سندرتون مشکل نداره به نظرم

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

 


استاد شفیعی :gol:

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

بایگانی شده

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

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

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