来自sqlite的Android中的Textview显示

Posted

技术标签:

【中文标题】来自sqlite的Android中的Textview显示【英文标题】:Textview display in Android from sqlite 【发布时间】:2012-07-10 17:30:40 【问题描述】:

在我的应用程序中,我有一个listview,因为我正在显示来自数据库的数据。

以下是我的代码:

for(int i=1;i<=db.getAllTitles().getCount();i++)
              
                 String cat=db.getTitle(i).getString(5).toString();
                 Cursor c = db.gethouseholdTitle();
                  startManagingCursor(c); 
                 if(cat.equals("Income"))
                   
//                   System.out.println("inside if="+select);
//                   Cursor cin = db.income();
                      from = new String[]  db.KEY_INCOME,db.KEY_DESC,db.KEY_CATEGORY,db.KEY_QUANTITY,db.KEY_TOTAL;
                      to = new int[] R.id.text1 ,R.id.text3,R.id.text5,R.id.text7,R.id.text9;
                     SimpleCursorAdapter notes =
                                new SimpleCursorAdapter(this, R.layout.columnview, c, from, to);
                    //  System.out.println("notes="+notes.getCount());
                    //  setListAdapter(notes);    
                       lv.setAdapter(notes);  
                 
                 else
                 
                     String catexp=db.getTitle(i).getString(5).toString();
                     Cursor cexp = db.gethouseholdTitleExp();
                    System.out.println("inside else="+cexp.getCount());
                     from = new String[]  db.KEY_INCOME,db.KEY_DESC,db.KEY_CATEGORY,db.KEY_QUANTITY,db.KEY_TOTAL;
                     to = new int[] R.id.text2 ,R.id.text4,R.id.text6,R.id.text8,R.id.text10;
                    SimpleCursorAdapter notesexp =
                            new SimpleCursorAdapter(this, R.layout.columnview, cexp, from, to);
                //  System.out.println("notes="+notes.getCount());
                //  setListAdapter(notes);    
                   lv.setAdapter(notesexp);  
                                    

              

我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:paddingTop="4dip"
     android:paddingBottom="6dip"
     android:layout_
     android:layout_
     android:orientation="vertical">         

     <TextView android:id="@+id/text1"      
        android:layout_
        android:layout_        
        android:text="Price:"/> 

      <TextView android:id="@+id/text2"     
        android:layout_
        android:layout_ 
        android:layout_marginLeft="50dp"
        android:layout_marginTop="-20dp"
        android:layout_weight="1"/>

     <TextView android:id="@+id/text3"          
        android:layout_
        android:layout_/>

     <TextView android:id="@+id/text4"      
        android:layout_marginTop="-20dp"
        android:layout_
        android:layout_ 
        android:layout_marginLeft="180dp"       
        android:layout_weight="1"/>  

       <TextView android:id="@+id/text5"            
        android:layout_
        android:layout_/>

       <TextView android:id="@+id/text6"        
        android:layout_marginTop="-20dp"
        android:layout_
        android:layout_ 
        android:layout_marginLeft="180dp"       
        android:layout_weight="1"/>  

        <TextView android:id="@+id/text7"           
        android:layout_
        android:layout_/>

         <TextView android:id="@+id/text8"      
        android:layout_marginTop="-20dp"
        android:layout_
        android:layout_ 
        android:layout_marginLeft="180dp"       
        android:layout_weight="1"/>  

          <TextView android:id="@+id/text9"         
        android:layout_
        android:layout_/>

          <TextView android:id="@+id/text10"        
        android:layout_marginTop="-20dp"
        android:layout_
        android:layout_ 
        android:layout_marginLeft="180dp"       
        android:layout_weight="1"/>  

      <TextView
        android:id="@+id/textView21"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"/> 

</LinearLayout>..

在此,仅显示 income 数据。 expense 没有显示任何内容。我检查了数据库的费用计数,它给出了准确的计数。因此数据存在于数据库中,但不会显示。我的设计有什么问题吗?

【问题讨论】:

【参考方案1】:

在列表视图中只能加载一项。不支持加载多个。请尝试使用相同语法通过网格视图显示。如果您想在列表视图中尝试,那么您应该通过基本适配器将列添加到列表视图。 请参阅基本适配器的给定教程链接。它将帮助您, http://developerlife.com/tutorials/?p=327

http://pradeep-sharma.com/blog/android-custom-listview-baseadapter-tutorial/

【讨论】:

感谢 Venkatesh..如何在网格视图中分别填充两个值。 好的。我添加了将值添加到gridview中的答案。请参阅答案。可能对你有帮助。 你得到答案了吗? 你试过我的编码了吗?出了什么问题? 如果你尝试了我的编码,那么你的结果将在上图中。【参考方案2】:

通过给定的编码绘制布局,

showlist.xml:

 <?xml version="1.0" encoding="utf-8"?>
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_ android:layout_ >
<TableRow android:layout_ android:layout_ android:id="@+id/Show">
    <TextView android:layout_ android:layout_ android:textColor="#ff8000"
        android:id="@+id/Entry"  android:layout_weight="1" android:gravity="left"/>

    <TextView android:layout_ android:layout_ android:textColor="#ff8000"
        android:id="@+id/sales"  android:layout_weight="1" android:gravity="right" />
</TableRow>

你可以在这里添加任意的textview,我想你想添加四个textview,所以你必须将textview的宽度更改为25dp。

GridView 设置:

然后为给定的gridview编码设置simplecursoradapter

       ada=new SimpleCursorAdapter(context, R.layout.showlist, mon,new String[]  cname, "_id" , new int[]  R.id.Entry,R.id.sales ) 

   gridview.setadapter(ada);

   //It will work well.

主要是你应该创建gridview并提到列是一。

结果将是

【讨论】:

以上是关于来自sqlite的Android中的Textview显示的主要内容,如果未能解决你的问题,请参考以下文章

来自 SQLite 数据库 C# Android 的 Xamarin ListView 显示项目

java.lang.ClassCastException: android.widget.RelativeLayout cannot be cast to android.widget.TextVie

在 Android 上使用来自 libGDX 的 SQLite

java 添加指向TextView的链接。 Linkify。字体:https://stackoverflow.com/questions/4746293/android-linkify-textvie

Android Studio - 线程完成后从 SQLite 获取数据

与来自 Android 的外部 SQLite 数据库交互。