Почему отображаются только цифры или цифры + только буквы?
Причина в том, что предложение WHERE (третий параметр метода запроса), скорее всего, не является ожидаемым выражением.
То есть, по сути, вы используете: -
SELECT _id,Example FROM mytable WHERE Example;
Таким образом, столбец Пример считается результатом сравнения, либо ложным, либо истинным (0 или 1).
Как abcd в нецифровом, оно равно 0 ложно.
Когда число встречается первым, например 123 или 123ABC тогда SQlite учитывает числовое значение, и если оно не равно 0, тогда оно истинно.
- 0ABC будет ложным.
- -9ABC будет иметь значение true.
- ABC999 будет ложным (сначала не числовые значения)
Ложные строки (0) игнорируются, включаются истинные строки (не 0) и, следовательно, результат.
Как сделать так, чтобы показывать записи букв тоже?
ЕслиВы использовали: -
public Cursor showRecordsFromExample(){
String[] selectedColumn = new String[]{_id, KEY_EXAMPLE};
Cursor selectedCursor = sqLiteDatabase.query(MYDATABASE_TABLE, selectedColumn,
null, null, null,
null, null);
return selectedCursor;
}
Тогда вы получите значения для всех строк.
Если бы вы использовали: -
public Cursor showRecordsFromExample(){
String[] selectedColumn = new String[]{_id, KEY_EXAMPLE};
Cursor selectedCursor = sqLiteDatabase.query(MYDATABASE_TABLE, selectedColumn,
KEY_EXAMPLE + " LIKE '%a%'", null, null,
null, null);
}
Тогда это вернет все строкикоторые имеют a или A в любом месте столбца Пример.