Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.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 从游标获取数据_Java_Android_Android Cursoradapter - Fatal编程技术网

Java 从游标获取数据

Java 从游标获取数据,java,android,android-cursoradapter,Java,Android,Android Cursoradapter,运行一个查询后,游标会像这样保存数据 1 - R. Robert 1 - F. Ahmed 2 - M. Rahman 2 - T. Banik 3 - L. Morison 我想通过像1和wnat这样的特定id获取数据,以将其存储在数组中。我试过这个 String [] Names = null; cursor.moveToFirst(); do{ if(cursor.getString(cursor.getColumnInd

运行一个查询后,游标会像这样保存数据

1 - R. Robert
 1 - F. Ahmed
 2 - M. Rahman
 2 - T. Banik
 3 - L. Morison
我想通过像1和wnat这样的特定id获取数据,以将其存储在数组中。我试过这个

String [] Names = null;
        cursor.moveToFirst();
        do{

            if(cursor.getString(cursor.getColumnIndexOrThrow("_id")).equalsIgnoreCase("1")){
                String namesAuth = cursor.getString(cursor.getColumnIndexOrThrow("NAME"));
                Names[cursor.getInt(cursor.getColumnIndexOrThrow("_id"))] = namesAuth;
            }
      }while(cursor.moveToNext());

我想要这样的格式[R.Robert,F.Ahmed]。这可能吗?谢谢

不要尝试过滤光标中的数据,而是使用所需的过滤器构造查询:

SQLiteDatabase db = getReadableDatabase();
String[] columns = new String[]{ /* Columns to include in the query */ };

    Cursor cursor = db.query(TABLE_NAME, columns,"_id=?", new String[]{"1"}, null, null, null);
然后在光标上迭代

   ArrayList<String> names = new ArrayList<String>();
   int columnIndex = cursor.getColumnIndexOrThrow("NAME");
   if (cursor.moveToFirst()) {
        do {
            names.add(cursor.getString(columnIndex);
        }while (cursor.moveToNext());
    }
ArrayList name=new ArrayList();
int columnIndex=cursor.getColumnIndexOrThrow(“名称”);
if(cursor.moveToFirst()){
做{
name.add(cursor.getString(columnIndex);
}while(cursor.moveToNext());
}

这将不起作用,因为必须使用长度初始化数组,并且该代码应(?)导致
NullPointerException

您可以改为使用
ArrayList
并向其中添加字符串,如下所示

    ArrayList<String> names = new ArrayList<String>();
    cursor.moveToFirst();
    do{

        if(cursor.getString(cursor.getColumnIndexOrThrow("_id")).equalsIgnoreCase("1")){
            String namesAuth = cursor.getString(cursor.getColumnIndexOrThrow("NAME"));
            names.add(namesAuth);
        }
  }while(cursor.moveToNext());
ArrayList name=new ArrayList();
cursor.moveToFirst();
做{
if(cursor.getString(cursor.getColumnIndexOrThrow(“\u id”)).equalsIgnoreCase(“1”)){
String namesAuth=cursor.getString(cursor.getColumnIndexOrThrow(“名称”));
names.add(namesAuth);
}
}while(cursor.moveToNext());