您如何在新活动中查看数据库的结果?
Posted
技术标签:
【中文标题】您如何在新活动中查看数据库的结果?【英文标题】:how do you view the results of a database in a new activity? 【发布时间】:2012-03-05 14:11:43 【问题描述】:我目前正在创建一个数据库来存储服务站的名称和坐标列表。但是,当我单击查看按钮时,我无法查看数据库。这是我的代码:`
public String getData()
// TODO Auto-generated method stub
String[] columns = new String[] KEY_ROWID, KEY_NAME, KEY_COORDINATES;
Cursor c = myDatabase.query(DATABASE_NAME, columns, null, null, null, null, null);
String result = "";
int iRow = c.getColumnIndex(KEY_ROWID);
int iName = c.getColumnIndex(KEY_NAME);
int iCoordinates = c.getColumnIndex(KEY_COORDINATES);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iCoordinates) + "\n";
return result;
`
有人发现这段代码有问题吗?
【问题讨论】:
我们确实需要了解您面临的问题,例如您遇到的异常,以及发生在哪一行。 您是否在某处打印数据?文本视图?什么地方? 在新的活动中,我将 textview 设置为我的数据库的结果,在下面的代码中。 'TextView tv = (TextView) findViewById(R.id.tvSqlInfo);车站信息 = 新车站(本); info.open();字符串数据 = info.getData();信息.close(); tv.setText(数据);' 对不起,我不知道如何格式化代码? 我的应用程序强制关闭并且错误在 LogCat 中 【参考方案1】:您的光标可能不包含任何行。如果是这样,c.getString() 会抛出异常。
moveToFirst() 出错时返回 false。像这样做你的循环:
if (c.moveToFirst())
do
result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString + "\n";
while (c.moveToNext())
如果事实确实如此,那么您可以处理为什么您的表没有行...
【讨论】:
这是一种非常冗长的迭代光标的方式。改用while (c.moveToNext()) ...
。
我的问题是我有 DATABASE_NAME 而不是 DATABASE_TABLE以上是关于您如何在新活动中查看数据库的结果?的主要内容,如果未能解决你的问题,请参考以下文章
单击 Listview 中的项目时,如何在新活动中从 Firebase 检索数据?