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

گرفتن متن آیتم های لیست ویو


jmfnima

سوال

با سلام به همه دوستان

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

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

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

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

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

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

سلام عزیزم

یه کدی چیزی میذاشتی بد نبود

بر فرض مثال، شما این لیست ویو رو در اکتیوتی shahab لود کردید

در Process_Global این اکتیویتی متغیر رشته ای meghdar رو تعریف میکنیم

dim meghdar as string

 

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

Sub EventName_ItemClick (Position As Int, Value As Object)
	meghdar = Value
	StartActivity(matn)
End Sub

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

در اتکتیویتی بعددی که مثلا اسمش هست matn

cur = sql.ExecQuery("SELECT * FROM tbl WHERE id = "& shahab.meghdar)cur.Position = 0label1.text = cur.GetString("matn")
لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام شهاب عزیز 

بابت جوابی که دادی خیلی ممنونم این روشی که شما گفتیم برای زمانی خوبه که تعداد آیتم ها کم باشه که شما می تونید از position هر کدام از آیتم ها استفاده کنی ولی مشکل من اینه که تعداد آیتم چیزی در حدود صد مورد هست و از بانک sqlite داره خونده میشه من میخوام در زمان کلیک بر روی هر کدام از آیتم ها متن و یا آی دی آیتم انتخاب شده رو بریزم توی یک متغیر تا بتونم ازش استفاده کنم و بعد بوسیله این متغیر و یا هر چیز دیگه ای مطالب مربوط به اون ایتم انتخاب شده رو از بانک بخونم و در یک اکیتویتی دیگه بوسیله scrolview , ... نمایش بدم .

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

سلام شهاب عزیز 

بابت جوابی که دادی خیلی ممنونم این روشی که شما گفتیم برای زمانی خوبه که تعداد آیتم ها کم باشه که شما می تونید از position هر کدام از آیتم ها استفاده کنی ولی مشکل من اینه که تعداد آیتم چیزی در حدود صد مورد هست و از بانک sqlite داره خونده میشه من میخوام در زمان کلیک بر روی هر کدام از آیتم ها متن و یا آی دی آیتم انتخاب شده رو بریزم توی یک متغیر تا بتونم ازش استفاده کنم و بعد بوسیله این متغیر و یا هر چیز دیگه ای مطالب مربوط به اون ایتم انتخاب شده رو از بانک بخونم و در یک اکیتویتی دیگه بوسیله scrolview , ... نمایش بدم .

خواهش میکنم :)

ببینید عزیزم

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

پس مسلما در رویداد کلیک، Value که برگرنداده میشه، مقدار ای دی شما هست، ما این مقدارِ ای دی رو ریختیم توی متغیر گلوبال مقدار تا هر جایی بشه استفاده اش کرد

حالا یه چیزی پیش میاد

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

listView1.addSingleLine(cur.getstring("titr"))

،،، برای کاری که میخواین انجام بدید ، 100 درصد باید از AddSingleLine2 استفاده کنید که مقدار دومی که میگیره، ای دی شما هست، در نتیجه میتونید اون رو بعدا از Value رویداد کلیک بخونید

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

cur = sql.exequery("SELECT * FROM tbl")
for i = 0 to cu.RowCount - 1
cur.Position = i
ListView1.AddSingleLine2(Cur.getstring("titr"),Cur.getInt("id"))
next

موفق باشید

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

سلام

من هم مشکلم تقریبا همینه  ولی یه خورده پیچیده تر ..به نظر خودم

من  داخل دیتابیسم سه تا  ردیف داده دارم

در اکتویتی اصلی من فقط تیتر نشون داده میشه

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

ولی وقتی کلیک م یکنم

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

اینهم کد های اکتویتی اصلی 

	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
Dim sql1 As SQL
Dim crs As Cursor
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
		Private ListView1 As ListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
		Activity.LoadLayout("Layout1")
		File.Copy(File.DirAssets,"data2.db",File.DirInternal,"data2.db")
		sql1.Initialize(File.DirInternal,"data2.db",False)
		crs=sql1.ExecQuery("SELECT * FROM tab1")
		For i=0 To crs.RowCount-1
			crs.Position=i
			ListView1.AddSingleLine2(crs.GetString("ti"),crs.GetInt("id"))
		Next
	End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub ListView1_ItemClick (Position As Int, Value As Object)
If Value=0 Then
	StartActivity(avti2)
	Else if Value=1 Then
		StartActivity(avti3) 
		Else if Value=2 Then
			StartActivity(avti4)
				End If

End Sub

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

برای متن قرار دادذم

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
'Dim cor As Cursor

	Private Label1 As Label
	Private ImageView1 As ImageView
	Dim Bitmap1 As Bitmap
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("asa")
'	If File.Exists(File.DirInternal,"data2.db") = False Then
'	File.Copy(File.DirAssets,"data2.db",File.DirInternal,"data2.db")
'	End If
	  avti.sql1.Initialize(File.DirInternal,"data2.db",False)
	  avti.crs= avti.sql1.ExecQuery("SELECT * FROM tab1")
For i=0 To   avti.crs.RowCount-1
       avti.crs.Position=i
     Label1.Text=  avti.crs.GetString("mat")
      Label1.Gravity=Gravity.RIGHT
 Dim jo As JavaObject
jo.InitializeContext.RunMethod("zxc",Array As Object(Label1))

Next
	Dim Buffer() As Byte
		Buffer =   avti.crs.GetBlob("img")
		Dim InputStream1 As InputStream
		InputStream1.InitializeFromBytesArray(Buffer, 0, Buffer.Length)
		Bitmap1.Initialize2(InputStream1)
		InputStream1.Close
		ImageView1.Bitmap=Bitmap1
	
	
End Sub

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

راهنمایی کنید کجایی کار مشکل هست؟؟؟

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

بایگانی شده

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

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

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