Я думаю, что вы забыли некоторые чеки. Тем не менее, это действительно зависит от языка, на котором написаны города - оператор SQLite "LIKE" нечувствителен к регистру только для английских букв. Если ваши города написаны на другом языке, попробуйте сохранить их в верхнем / нижнем регистре в базе данных и преобразовать входную строку в верхний / нижний регистр в java (String.toUpper / LowerCase ()).
String[] result_columns=new String[]{"_id","CITY","CODE"};
Cursor cursor = db.query(TABLE_NAME, result_columns,
"CITY" +" like '%?%'", new String[]{"k"}, null, null, null);
if(cursor != null)
{
while(cursor.moveToNext())
{
String xnewcode=cursor.getString(1);
Toast.makeText(activity1.this, xnewcode, Toast.LENGTH_LONG).show();
}
}
Вы можете сохранить все результаты в массиве и показать их пользователю, попросив его выбрать правильный.
РЕДАКТИРОВАТЬ: Если вы не знакомы, оператор "x LIKE Y" сравнивает x с любой подстрокой из Y с length = x.length. Это очень полезно, потому что вы не можете гарантировать, что пользователь введет название всего города. Так что в моем примере, если пользователь вводит «йорк», курсор возвращает значения, такие как «нью-йорк», «йоркшир», «йорк» и т. Д.