为什么没有在列表&LT只有一个数据;串&GT ;? [英] Why there is only one data in the List<String>?

查看:116
本文介绍了为什么没有在列表&LT只有一个数据;串&GT ;?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用游标数据库中选择,并希望把所有的数据列表里面,然后返回到在MainActivity。但是,调试完毕后,我发现,只有返回值中的第一个数据。

 公开名单<串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();
    清单<串GT;人=新的ArrayList<串GT;();
    cursor.moveToFirst();
    而(!cursor.isAfterLast()){
        INT索引1 = cursor.getColumnIndex(DbHelper1.KEY_ID1);
        字符串ID = cursor.getString(指数1);
        al.add(ID);
        cursor.moveToNext();
    }
    返回人;

}


解决方案

 公开名单<串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();
        清单<串GT;名单=新的ArrayList<串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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆