2012-07-03 23 views
0

我想从数据库“listOfFolder”表“文件夹”访问所有的数据,并希望将数据存储在字符串数组文件夹[]但我得到如何解决ArrayIndexOutOfBoundsException。如何解决ArrayIndexOutOfBoundsException

try{ 

    mydb = openOrCreateDatabase("listOfFolder", MODE_WORLD_WRITEABLE, null); 

    } catch (Exception e) { 
     // TODO: handle exception 
     e.printStackTrace(); 
     } 

int count = 0; 
String folders[] = null; 
Cursor folderCursor = mydb.query("folder", null, null, null, null, null, null); 
while(folderCursor.moveToNext()) { 

    folders[count] = folderCursor.getString(folderCursor.getColumnIndex("name")); 
        count++; 
} 

ListView list = (ListView)findViewById(R.id.lv); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(DropboxActivity.this, android.R.layout.simple_list_item_1,folders); 
list.setAdapter(adapter); 
setContentView(R.layout.listoffolder); 

回答

4

变化

String folders[] = null; 
Cursor folderCursor = mydb.query("folder", null, null, null, null, null, null); 
while(folderCursor.moveToNext()){ 
    folders[count] = folderCursor.getString(folderCursor.getColumnIndex("name")); 
    count++; 
} 

Cursor folderCursor = mydb.query("folder", null, null, null, null, null, null); 
if (folderCursor.moveToFirst()) { 
    String folders[] = new String[folderCursor.getCount()]; 
    do { 
     folders[count] = folderCursor.getString(folderCursor.getColumnIndex("name")); 
     count++; 
    } while(folderCursor.moveToNext()); 
} 
+0

之后,我想创建一个列表视图,再次我得到nullpointerexception那里ListView list =(ListView)findViewById(R.id.lv); \t \t \t ArrayAdapter adapter = new ArrayAdapter (DropboxActivity.this,android.R.layout.simple_list_item_1,folders); \t \t \t list.setAdapter(adapter); \t \t \t setContentView(R.layout.listoffolder); – sachin

+0

获得空指针异常在 \t \t \t list.setAdapter(adapter); – sachin

+0

可能'findViewById'找不到您的ListView。你确定在布局xml文件中有一个ID为“@ + id/lv”的ListView吗? – vasart

4

这是你的问题:

String folders[] = null; 

你是怎么想到要发生什么?

这段代码是一个坏主意,因为你不知道查询会带回多大的集合。您必须致电new分配足够大的阵列。

我更喜欢像List这样的集合,如果它可用。也检查this一个。

+0

我如何将数据存储在列表中 – sachin

+0

请参阅我的编辑。并了解如何让Google安装在您的机器上。 – duffymo

0

像这样:

String example1 = "this is a string"; 
namehere.add(example1); 

ArrayList<datatypehere> namehere=new ArrayList<datatypehere>(); 

然后你可以通过元素添加到列表

如果您搜索它们,那么Theres在JavaDocs和Java教程中的列表上非常有用。