为什么没有在列表&LT只有一个数据;串&GT ;? [英] Why there is only one data in the List<String>?
本文介绍了为什么没有在列表&LT只有一个数据;串&GT ;?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用游标数据库中选择,并希望把所有的数据列表里面,然后返回到在MainActivity。但是,调试完毕后,我发现,只有返回值中的第一个数据。
公开名单&LT;串GT;选择1(字符串ReservedState,字符串mycity,字符串mystreet,字符串mypost code){
ReservedState =自由;
SQLiteDatabase数据库1 = dbHelper1.getWritableDatabase();
的String [] =列{DbHelper1.KEY_ID1,DbHelper1.KEY_RESERVEDSTATE,DbHelper1.KEY_GEOGRAPHICALLOCATION,DbHelper1.KEY_CITY,DbHelper1.KEY_POST code,DbHelper1.KEY_STREET};
光标光标= Database1.query(DbHelper1.TABLE_NAME_1,列DbHelper1.KEY_RESERVEDSTATE +='+ ReservedState +和+ DbHelper1.KEY_CITY +='+ mycity +和+ DbHelper1.KEY_POST code += '+ mypost code +和+ DbHelper1.KEY_STREET +='+ mystreet +',NULL,NULL,NULL,NULL);
// StringBuffer的缓冲区=新的StringBuffer();
清单&LT;串GT;人=新的ArrayList&LT;串GT;();
cursor.moveToFirst();
而(!cursor.isAfterLast()){
INT索引1 = cursor.getColumnIndex(DbHelper1.KEY_ID1);
字符串ID = cursor.getString(指数1);
al.add(ID);
cursor.moveToNext();
}
返回人;
}
解决方案
公开名单&LT;串GT;选择1(字符串ReservedState,字符串mycity,字符串mystreet,字符串mypost code){
ReservedState =自由;
SQLiteDatabase数据库1 = dbHelper1.getWritableDatabase();
的String [] =列{DbHelper1.KEY_ID1,DbHelper1.KEY_RESERVEDSTATE,DbHelper1.KEY_GEOGRAPHICALLOCATION,DbHelper1.KEY_CITY,DbHelper1.KEY_POST code,DbHelper1.KEY_STREET};
光标光标= Database1.query(DbHelper1.TABLE_NAME_1,列DbHelper1.KEY_RESERVEDSTATE +='+ ReservedState +和+ DbHelper1.KEY_CITY +='+ mycity +和+ DbHelper1.KEY_POST code += '+ mypost code +和+ DbHelper1.KEY_STREET +='+ mystreet +',NULL,NULL,NULL,NULL);
Log.e(光标,+ cursor.getCount());
// StringBuffer的缓冲区=新的StringBuffer();
清单&LT;串GT;名单=新的ArrayList&LT;串GT;();
做{
INT索引1 = cursor.getColumnIndex(DbHelper1.KEY_ID1);
字符串ID = cursor.getString(指数1);
list.add(ID);
}而(cursor.moveToNext());
返回人;
}
试试这个。希望这会有所帮助。
I used cursor for database selecting and want to put all the data inside a List, then return to the mainactivity. But after debugging, I found that there is only the first data inside the return value.
public List<String> select1 (String ReservedState, String mycity, String mystreet, String mypostcode){
ReservedState="Free";
SQLiteDatabase Database1=dbHelper1.getWritableDatabase();
String[] columns={DbHelper1.KEY_ID1,DbHelper1.KEY_RESERVEDSTATE, DbHelper1.KEY_GEOGRAPHICALLOCATION,DbHelper1.KEY_CITY,DbHelper1.KEY_POSTCODE,DbHelper1.KEY_STREET};
Cursor cursor=Database1.query(DbHelper1.TABLE_NAME_1,columns, DbHelper1.KEY_RESERVEDSTATE+"='"+ReservedState+"' AND "+DbHelper1.KEY_CITY+"='"+mycity+"' AND "+DbHelper1.KEY_POSTCODE+"='"+mypostcode+"' AND "+DbHelper1.KEY_STREET+"='"+mystreet+"'",null,null,null,null);
//StringBuffer buffer=new StringBuffer();
List<String> al=new ArrayList<String>();
cursor.moveToFirst();
while(!cursor.isAfterLast()){
int index1=cursor.getColumnIndex(DbHelper1.KEY_ID1);
String id=cursor.getString(index1);
al.add(id);
cursor.moveToNext();
}
return al;
}
解决方案
public List<String> select1 (String ReservedState, String mycity, String mystreet, String mypostcode){
ReservedState="Free";
SQLiteDatabase Database1=dbHelper1.getWritableDatabase();
String[] columns={DbHelper1.KEY_ID1,DbHelper1.KEY_RESERVEDSTATE, DbHelper1.KEY_GEOGRAPHICALLOCATION,DbHelper1.KEY_CITY,DbHelper1.KEY_POSTCODE,DbHelper1.KEY_STREET};
Cursor cursor=Database1.query(DbHelper1.TABLE_NAME_1,columns, DbHelper1.KEY_RESERVEDSTATE+"='"+ReservedState+"' AND "+DbHelper1.KEY_CITY+"='"+mycity+"' AND "+DbHelper1.KEY_POSTCODE+"='"+mypostcode+"' AND "+DbHelper1.KEY_STREET+"='"+mystreet+"'",null,null,null,null);
Log.e("Cursor",""+cursor.getCount());
//StringBuffer buffer=new StringBuffer();
List<String> list=new ArrayList<String>();
do{
int index1=cursor.getColumnIndex(DbHelper1.KEY_ID1);
String id=cursor.getString(index1);
list.add(id);
}while(cursor.moveToNext());
return al;
}
Try this. Hope this will help.
这篇关于为什么没有在列表&LT只有一个数据;串&GT ;?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文