Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Sql数据放入数字数组_Java_Android_Sql_Arrays_Eclipse - Fatal编程技术网

Java 将Sql数据放入数字数组

Java 将Sql数据放入数字数组,java,android,sql,arrays,eclipse,Java,Android,Sql,Arrays,Eclipse,我有个问题。如何将SQL数据库中的数据放入数字数组。我想把它们放在图表中 我得到了这些命令的NullPointerException Number[] series2Numbers={s1nInt[1]}; 这是我的全部代码 openDB(); Cursor c = myDb.getSpalte(); while (c.moveToPrevious()) { s1nInt[i] = c.getInt(1); i++; c.moveToP

我有个问题。如何将SQL数据库中的数据放入数字数组。我想把它们放在图表中

我得到了这些命令的
NullPointerException

Number[] series2Numbers={s1nInt[1]};
这是我的全部代码

openDB();
Cursor c = myDb.getSpalte();        

while (c.moveToPrevious())
{        
    s1nInt[i] = c.getInt(1);
    i++;
    c.moveToPrevious();

}
c.close();
closeDB();    

Number[] series2Numbers={s1nInt[1]};
这是我的例外:

Graph.onStart() line: 85    
Graph(Fragment).performStart() line: 1801   
FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 937 
 FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1106 
 BackStackRecord.run() line: 690    
 FragmentManagerImpl.execPendingActions() line: 1571    
FragmentManagerImpl$1.run() line: 447   
Handler.handleCallback(Message) line: 733   
Handler.dispatchMessage(Message) line: 95   
我的getSpalte()

我需要这个阵列:

 XYSeries series1 = new SimpleXYSeries(
                     Arrays.asList(series1Numbers),          // SimpleXYSeries takes a List so turn our array into a List
                     SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, // Y_VALS_ONLY means use the element index as the x value
                     "Series1");                             // Set the display title of the series

s1nInt
在行中为
null

Number[] series2Numbers={s1nInt[1]};
也许您从未在某个地方初始化
s1nInt
或将其设置为
null
。这是该行中唯一可以生成
NullPointerException
的部分

这也意味着
c.moveToPrevious()
失败

从api文件: 如果光标已经在结果集中的第一个条目之前,此方法将返回false

也许您也必须将
moveToPrevious()
更改为
moveToNext()
。(光标位于查询后第一个条目之前的位置)

在每个循环迭代中,您还可以移动光标两次。这样,您只能得到奇数行或偶数行


更新
在对问题进行最新编辑之后,您似乎需要一个
列表来显示您的数据库查询(在
getSpalte()
中)。我想myDb属于您自己的类型,因为它有一个名为“getSpalte()”的方法。同时请包括查询表的结构。乍一看,
s1nInt
数组的大小似乎小于2。@Michael:乍一看,您会发现这将产生一个
ArrayIndexOutOfBoundsException
而不是NPE。看起来结果只有一列,但是。@fabian你是对的。。抱歉..我收到这些异常
06-28 12:00:26.956:E/CursorWindow(5510):无法从包含3行1列的CursorWindow中读取第1行第1列@user3779128:索引是从零开始的,这意味着列1位于索引0,而不是索引1。(请参阅)嗯,我如何才能更改他这样做?@user3779128:我不确定我是否正确理解了该注释(“他”是谁),但如果你想修复该错误,应该将
c.getInt(1)
更改为
c.getInt(0)
。嗯。但我没有帮助
Number[] series2Numbers={s1nInt[1]};
public Cursor getSpalte(){
    String where= null;
    String Order = "_id DESC";
    Cursor c =  db.query(true, DATABASE_TABLE, KEY_KALOA, // hope KEY_KALOA is guarantied to be correct here
            where, null, null, null, Order, null);
    return c;
}
openDB();
Cursor c = myDb.getSpalte();
List<Integer> valueList = new ArrayList<Integer>(c.getCount());

while (c.moveToNext()) {        
    valueList.add(c.getInt(0)); // assuming the first column is of type INT
}
c.close();
closeDB();

XYSeries series1 = new SimpleXYSeries(
                 valueList,
                 SimpleXYSeries.ArrayFormat.Y_VALS_ONLY,
                 "Series1");