Я получил ту же проблему несколько дней назад и решил проблему, используя альтернативный метод.Ранее я использовал следующий метод для установки курсора на столбец.
String sqlStatement = "SELECT supplierid,suppliercode,suppliername FROM supplierinfo WHERE suppliername LIKE '%"+query+"%' ";
cursor = db.rawQuery(sqlStatement,null);
if (cursor != null && cursor.getCount() > 0){
if (cursor.moveToFirst()){
do {
int supplierId = cursor.getInt( 0);
String supplierCode = cursor.getString(cursor.getColumnIndex( "suppliercode" )) != null ? cursor.getString( cursor.getColumnIndex( "suppliercode" ) ) : "";
String supplierName = cursor.getString(cursor.getColumnIndex( "suppliername" )) != null ? cursor.getString( cursor.getColumnIndex( "suppliername" ) ) : "";
supplierInfo = new SupplierInfo();
supplierInfo.setSupplierID( supplierId );
supplierInfo.setSupplierCode( supplierCode );
supplierInfo.setSupplierName( supplierName );
supplierInfoList.add(supplierInfo);
} while (cursor.moveToNext());
}
После того, как я изменил это на следующий метод, он работал для меня.
String sqlStatement = "SELECT supplierid,suppliercode,suppliername FROM supplierinfo WHERE suppliername LIKE '%"+query+"%' ";
cursor = db.rawQuery(sqlStatement,null);
if (cursor != null && cursor.getCount() > 0){
if (cursor.moveToFirst()){
do {
int supplierId = cursor.getInt( 0);
String supplierCode = cursor.getString(1) != null ? cursor.getString( 1 ) : "";
String supplierName = cursor.getString(2) != null ? cursor.getString( 2 ) : "";
supplierInfo = new SupplierInfo();
supplierInfo.setSupplierID( supplierId );
supplierInfo.setSupplierCode( supplierCode );
supplierInfo.setSupplierName( supplierName );
supplierInfoList.add(supplierInfo);
} while (cursor.moveToNext());
}