Я бы посоветовал вам использовать здесь SQL вместо java, поскольку это проще, создать соответствующий запрос, который проверяет совпадение строки и возвращает идентификатор:
public int getIdForString(String str) {
int res;
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(MY_TABLE, new String[] { COLUMN_ID,
}, COLUMN_STRING + "=?",
new String[] { str }, null, null, null, null);
if ((cursor != null) && (cursor.getCount() > 0)) {
cursor.moveToFirst();
res = cursor.getInt(cursor.getColumnIndex(COLUMN_ID));
}
else {
res = NOT_EXIST;
}
if (cursor != null) {
cursor.close();
}
return res;
}
Обратите внимание, что в этом примере я использовал много констант, так как это намного проще и менее подвержено ошибкам. В этом случае константы:
MY_TABLE
- строка, имя таблицы
COLUMN_ID
- Строка, имя столбца идентификатора
COLUMN_STRING
- Строка, имя столбца со строкой для сравнения
NOT_EXIST
- int, -1, чтобы указать, что он не был найден.