我有以下代码,除了在后台线程中从数据库中读取一些值并使用我使用 jar 绘制折线图的值之外什么都不做。对于折线图,我使用每个数组的值,问题是我传递给绘制 LineChart 的构造函数的第三个是 float ....
float[] viteza;
String[] time;
int contor=0;
public void onResume() {
super.onResume();
init_task = new InitTask();
init_task.execute(db);
}
public class InitTask extends AsyncTask<DBAdapter,String, Void> {
String TABLE_3;
protected Void doInBackground(DBAdapter... db) {
try {
db[0].createDatabase();
db[0].openDataBase();
Cursor c = db[0].getCursor3(db[0].TABLE_3, user_id);
String[] array=new String[2];
viteza = new float[c.getCount()];
time = new String[c.getCount()];
if (c.moveToFirst()) {
do {
publishProgress(c.getString(3),c.getString(4));
Thread.sleep(500);
} while (c.moveToNext());
}
c.close();
db[0].close();
} catch (Exception e) {
Log.d("Eroare", "doInBackground", e);
}
return null;
}
protected void onProgressUpdate(String...values) {
Aitem items[] = new Aitem[1];
viteza[contor]=Float.valueOf(values[0]);
time[contor]=values[1];
if(contor>3)
{
items[0]=new Aitem(Color.RED, "Evolution",viteza);
lv.setTitle("Evolutia vitezei");
lv.setAxisValueX(time);
setContentView(lv);
}
contor++;
}
}
}
我在这一行出错:
viteza[contor]=Float.valueOf(values[0]);
java.lang.NumberFormatException:
at org.apache.harmony.luni.util.FloatingPointParser.parseFltImpl(Native Method)
at org.apache.harmony.luni.util.FloatingPointParser.parseFloat(FloatingPointParser.java:321)
有人知道哪里出了问题吗???
编辑:
以我的愚见,values[0]=c.getString(3) 和 values[1]=c.getString(4) 所以......是字符串......不是吗?
最佳答案
光看这个我还不确定,但我可以告诉你,这就是 Log.v 非常方便的地方。放置一个 Log.v(TAG,"\""+values[]+"\""),您将确切地看到该函数得到了什么。如果它不是纯数字,那就是导致异常发生的原因。
关于java - android 中的 lang.NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6206897/