Пожалуйста, мне нужна твоя помощь.Я использую следующий оператор для выбора некоторых данных из моей базы данных: Курсор курсора = getData ("SELECT * FROM MYDATABASE WHERE ITEMS =?", Новая строка [] {selectedItemText}); .Предположим, что в моей базе данных 20 предметов, и, используя мой предыдущий курсор, я выбрал 4 из них, соответственно, в позиции: 1, 8, 12 и 17, например.Затем я перечисляю все, что я выбрал из базы данных, используя gridView, так что у меня будет 4 элемента в моем списке (это хорошо работает, пока здесь).Предположим, я щелкнул один элемент из этих 4 (например, я щелкнул по одному элементу с id = 12 в моей базе данных, что означает третий (id = 3) в моем виде сетки.
gridViewItem.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,final int position, long id) {
//get details
Cursor c = getData("SELECT id FROM MYDATABASE");
ArrayList<Integer> arrID = new ArrayList<>();
while (c.moveToNext())
{
arrID.add(c.getInt(0));
}
//call methode getParameters.
getParameters(arrID.get(position));
}
});
с помощьюстрока: Курсор c = getData ("SELECT id FROM MYDATABASE"); , я получаю идентификатор моего selectedItem из gridView с 4 элементами. Я использую его в методе, вызывающем getParameters (arrID.get (position)) . Проблема в том, что курсор возвращает меня id = 3 (учитывая список gridView), но я хотел бы получить id = 12 (учитывая мою базу данных). Пожалуйста, как я могу получить ее?