【发布时间】:2013-01-17 21:44:25
【问题描述】:
我正在从 sqlite 数据库中填充 AChartEngine,我需要显示所有数据。我遇到的问题是,当我删除一条记录时,图表系列会停止填充已删除的记录。我需要找到一种方法来跳过已删除/空记录并继续填充我的图表。我需要它以与 listview 跳过已删除记录并继续显示所有行的方式相同的方式执行此操作。我对很多事情都很陌生,并且对此感到非常困难。我试图编写 if 语句以跳过已删除/空行,但似乎没有任何效果。感谢您的帮助!
在我的绘图活动中:
for (int i = 1; !c.isAfterLast(); i++) {
String value1 = db.getValue1(i);
String value2 = db.getValue2(i);
c.moveToNext();
double x7 = Double.parseDouble(value1);
double y7 = Double.parseDouble(value2);
myseries.add(x7, y7);
}
我收到错误:CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
如果我用 try and catch 包围它,它将填充行直到被删除的记录。
“编辑” 在我的 sqlite 数据库中:
public String getValue1(long l) {
String[] columns = new String[]{ EMP_DEPT };
Cursor c = db.query(EMP_TABLE, columns, EMP_ID + "=" + l, null, null, null, null);
if (c != null){
c.moveToFirst();
String value1 = c.getString(0);
return value1;
}
return null;
}
public String getValue2(long l) {
String[] columns = new String[]{ EMP_DATE1 };
Cursor c = db.query(EMP_TABLE, columns, EMP_ID + "=" + l, null, null, null, null);
if (c != null){
c.moveToFirst();
String value2 = c.getString(0);
return value2;
}
return null;
}
【问题讨论】:
-
这确实表明如果删除数据库中的任何内容会影响您的图表,那么您的设置存在根本性错误。本质上,您应该将您的图表系列从查询加载到数据库,并且该图表系列全权负责为您的图表提供数据。在创建后影响数据库不应影响图形系列,从而影响图形。
-
图表本身不是问题...我遇到的问题在于查询以及我如何填充系列。我认为我需要的是查询中的一条语句来跳过空行。查看更新后的帖子,我已包含我的查询。
-
我的观点是,填充步骤和删除步骤应该是不同的步骤,这样如果操作正确,一个永远不会与另一个发生冲突。
标签: android sqlite for-loop achartengine