来自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