У меня есть строка поиска.Например: если я набираю co, мне нужно получить всю начальную букву набранного c и отобразить список.
Но он отображает только точный список ca.Как отобразить только начальную букву алфавита из входной строки.
в приведенном ниже запросе «Текст отображения» - это таблица, в которой отображается описание данного ввода.
public List<BaseTableOfContents> searchNodesForText(@Nullable String rootHash,
@Nullable String substring) {
List<BaseTableOfContentsNode> returnValue = null;
if (StringUtils.isNotEmpty(substring) && StringUtils.isNotEmpty(rootHash)) {
String likeQuery = "%" + substring + "%";
Cursor cursor = mDatabase.query(Tables.TOC_NODES, null,
Columns.TOC_ROOT_NODE_HASH + " = ? AND (" +
Columns.DISPLAY_TEXT + " LIKE ? OR " +
Columns.TOC_IS_TITLE_BREAK + " = 1)",
new String[] { rootHash, likeQuery }, null, null,
Columns.TOC_SORT_ORDER + ORDER_ASCENDING);
returnValue = getNodesFromCursor(cursor);
cursor.close();
}
Нижеявляется жестко закодированным.Вы можете увидеть текст «компенсации», который жестко закодирован.Но если я наберу компенсатор, он должен перечислить весь список, начинающийся с "c"
public List<BaseTableOfContents> searchNodesForText(@Nullable String rootHash,
@Nullable String substring) {
List<BaseTableOfContentsNode> returnValue = null;
if (StringUtils.isNotEmpty(substring) && StringUtils.isNotEmpty(rootHash)) {
String likeQuery = "%" + "compensacion" + "%"; //here I hardcoded. Only when I give exact term, it's displaying, otherwise it's not displaying.
Cursor cursor = mDatabase.query(Tables.TOC_NODES, null,
Columns.TOC_ROOT_NODE_HASH + " = ? AND (" +
Columns.DISPLAY_TEXT + " LIKE ? OR " +
Columns.TOC_IS_TITLE_BREAK + " = 1)",
new String[] { rootHash, likeQuery }, null, null,
Columns.TOC_SORT_ORDER + ORDER_ASCENDING);
returnValue = getNodesFromCursor(cursor);
cursor.close();
}