مشکل در نمایش اطلاعات از دیتابیس

سوال

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

در حال بررسی 0
, 2018-01-27T17:11:09+03:30 2 پاسخ کاربر تازه 0

پاسخ ها ( 2 )

    0
    2018-01-30T09:42:20+03:30

    سلام

    لیست ویو نهایتا دو خطی هست، در سایت b4a کتابخانه ای وجود داره به نام CustomListView که توسط این کتابخانه میتونید لیست ویو چند خطی بسازید، ولی برای دانلود کتابخانه می بایست عضو ویژه سایت باشید.

    https://www.b4x.com/android/forum/threads/customlistview-a-flexible-list-based-on-scrollview.19567/

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

    موفق باشید.

    0
    2018-02-01T14:47:50+03:30
    این پاسخ ویرایش شد.

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

    Panel1.Tag = i

     

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

    Sub Activity_Create(FirstTime As Boolean)
    	
    	Activity.LoadLayout("main")
    
    	File.Copy(File.DirAssets,"sudent.db",File.DirInternal,"sudent.db")
    	If SQL1.IsInitialized = False Then
    		SQL1.Initialize(File.DirInternal, "sudent.db", False)
    	End If
    	
    	
    	cursor1 = SQL1.ExecQuery("SELECT * FROM tblstudent ")
    	For i = 0 To cursor1.RowCount-1
    		cursor1.Position=i
    		Dim p As Panel
    		p.Initialize("")
    		ScrollView1.Panel.AddView(p,3%x,top,94%x,80dip)
    		p.LoadLayout("basicapp")
    		Label2.Text = cursor1.GetString("sname")
    		Log(cursor1.GetString("sfamily"))
    		top = top + 80dip + 3%X
    		Panel1.Tag = cursor1.GetString("sname")
    	Next
    	
    	ScrollView1.Panel.Height = top
    End Sub
    

     

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

    Sub Panel1_Click
    	Dim p As Panel = Sender
    	ToastMessageShow("گزینه "&p.Tag&" کلیک شد !",False)
    	nomre(p.Tag)
    End Sub
    

     

    و اینم کد مربوط به ساب نمره بر حسب نام دریافتی

    Sub nomre(name As String)
    	Dim condit As String
    	condit="WHERE sname LIKE '%"&name&"%'"
    	cursor1 = SQL1.ExecQuery("SELECT * FROM tblstudent "&condit)
    	For i = 0 To cursor1.RowCount-1
    		cursor1.Position=i
    		Dim p As Panel
    		p.Initialize("")
    		p.LoadLayout("basicapp")
    		Label2.Text = cursor1.GetString("sage")
    		Log(cursor1.GetString("sgrade"))
    		top = top + 80dip + 3%X
    		
    	Next
    	ScrollView1.Panel.Height = top
    End Sub

     

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

    Sub Process_Globals
    	Dim SQL1 As SQL
    End Sub
    
    Sub Globals
    	Private ScrollView1 As ScrollView
    	Dim top As Int = 3%x
    	Private Label2 As Label
    	Private Panel1 As Panel
    	Dim cursor1 As Cursor
    End Sub
    
    Sub Activity_Create(FirstTime As Boolean)
    	
    	Activity.LoadLayout("main")
    
    	File.Copy(File.DirAssets,"sudent.db",File.DirInternal,"sudent.db")
    	If SQL1.IsInitialized = False Then
    		SQL1.Initialize(File.DirInternal, "sudent.db", False)
    	End If
    	
    	
    	cursor1 = SQL1.ExecQuery("SELECT * FROM tblstudent ")
    	For i = 0 To cursor1.RowCount-1
    		cursor1.Position=i
    		Dim p As Panel
    		p.Initialize("")
    		ScrollView1.Panel.AddView(p,3%x,top,94%x,80dip)
    		p.LoadLayout("basicapp")
    		Label2.Text = cursor1.GetString("sname")
    		Log(cursor1.GetString("sfamily"))
    		top = top + 80dip + 3%X
    		Panel1.Tag = cursor1.GetString("sname")
    	Next
    	
    	ScrollView1.Panel.Height = top
    End Sub
    
    Sub Activity_Resume
    
    End Sub
    
    Sub Activity_Pause (UserClosed As Boolean)
    
    End Sub
    
    Sub Panel1_Click
    	Dim p As Panel = Sender
    	ToastMessageShow("گزینه "&p.Tag&" کلیک شد !",False)
    	nomre(p.Tag)
    End Sub
    Sub nomre(name As String)
    	Dim condit As String
    	condit="WHERE sname LIKE '%"&name&"%'"
    	cursor1 = SQL1.ExecQuery("SELECT * FROM tblstudent "&condit)
    	For i = 0 To cursor1.RowCount-1
    		cursor1.Position=i
    		Dim p As Panel
    		p.Initialize("")
    		p.LoadLayout("basicapp")
    		Label2.Text = cursor1.GetString("sage")
    		Log(cursor1.GetString("sgrade"))
    		top = top + 80dip + 3%X
    		
    	Next
    	ScrollView1.Panel.Height = top
    End Sub

     

ارسال یک پاسخ