2016-05-12 24 views
2

私は大学のアンドロイドプロジェクトで作業しようとしていましたが、私はこの時点で立ち往生しています。テーブルstudentsからすべての行を取り出し、ArrayListに入力してから、ListViewまたはCardViewを使用して、各生徒の記録を表示します。これは私が使用しているコードです:SQLiteテーブルからすべての行を取得するにはどうすればよいですか?

public ArrayList<String> getStudentsEntry() 
    { 

     ArrayList<String> arrayList = new ArrayList<>(); 

     Cursor cursor = db.query("STUDENT", ALL_COLUMN_NAME, null, null, null, null, null); 
     if(cursor.getCount()<1) // UserName Not Exist 
     { 
      cursor.close(); 
      return null; 
     } 
     cursor.moveToFirst(); 
     while(cursor.isAfterLast()) { 
      String name = cursor.getString(cursor.getColumnIndex("NAME")); 
      String enrollment = cursor.getString(cursor.getColumnIndex("ENROLLMENT")); 
      String year = cursor.getString(cursor.getColumnIndex("YEAR")); 
      String dob = cursor.getString(cursor.getColumnIndex("DOB")); 
      String email = cursor.getString(cursor.getColumnIndex("EMAIL")); 
      String caste = cursor.getString(cursor.getColumnIndex("CASTE")); 
      String fname = cursor.getString(cursor.getColumnIndex("FNAME")); 
      String mname = cursor.getString(cursor.getColumnIndex("MNAME")); 
      String address = cursor.getString(cursor.getColumnIndex("ADDRESS")); 
      String contact = cursor.getString(cursor.getColumnIndex("CONTACT")); 

      arrayList.add(name); 
      arrayList.add(enrollment); 
      arrayList.add(year); 
      arrayList.add(dob); 
      arrayList.add(email); 
      arrayList.add(caste); 
      arrayList.add(fname); 
      arrayList.add(mname); 
      arrayList.add(address); 
      arrayList.add(contact); 

     } 
     return arrayList; 
    } 

私はデータベースからデータを取得できません。配列のサイズはゼロです:java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:25で

Caused by: java.lang.IndexOutOfBoundsException: Invalid index 1, size is 0 

みんな私を助けてください、私はこのようなものに新たなんだ

+0

を行うべきです私はデータベースからデータを取得することができません.. –

答えて

2

そのないwhile(cursor.isAfterLast())それはwhile(!cursor.isAfterLast())それとも単に異なっています

while (cursor.moveToNext()) { 
    ... 
} 
+0

ありがとう@ Shree Krishna働いた! :-)それだけで 'cursor.moveToNext' –

1
ArrayList<String> arrayList = new ArrayList<>(); 

Cursor cursor = database.query("STUDENT", ALL_COLUMN_NAME, null, null, null, null, null); 
if(cursor.getCount()<1) // UserName Not Exist 
{ 
    cursor.close(); 
    return null; 
} 
cursor.moveToFirst(); 
while(!cursor.isAfterLast()) { 
    for (int column = 0; column < cursor.getColumnCount(); column ++) { 
     arrayList.add(cursor.getString(column));  
    } 
} 
return arrayList;