2016-12-22 1 views
0

Я хочу вернуть ссылку из sqlite db, нажав на элемент recyclerview. Он всегда возвращает последнее добавленное. Проблема в курсоре, но я не знаю, как это исправить.как вернуть ссылку из базы данных курсором android

курсор запроса в DBManager.class

public Cursor linkColumn() { 
    String[] linkColumn = new String[]{DatabaseHelper.LINK}; 
    Cursor cursor = sqLiteDatabase 
      .query(
        DatabaseHelper.TABLE_NAME, 
        linkColumn, 
        null, 
        null, 
        null, 
        null, 
        null); 
    return cursor; 
} 

щелчок по пункту

@Override 
     public void onItemClick(long _id) { 
      Intent returnIntent = new Intent(); 
      Cursor cursor = dbManager.linkColumn(); 

      String item = cursor.getString(cursor.getColumnIndex(DatabaseHelper.LINK)); 
      returnIntent.putExtra("link", item); 
      setResult(RESULT_OK, returnIntent); 
      finish(); 

     } 
+0

как я уже говорил в том же вопрос, который вы написали вчера и сегодня воссоздавать ** Вы никогда не говорите курсор, какая строка брать! ** [поэтому, пожалуйста, смотрите этот пост SO] (http://stackoverflow.com/questions/1243199/how-to-perform-an-sqlite-query-within-and-android-application) и [это официальное руководство] (https://developer.android.com /reference/android/database/sqlite/SQLiteDatabase.html) или [эта другая ссылка SO] (http://stackoverflow.com/questions/10600670/sqlitedatabase-query-method) и, наконец, [руководство по sql] (http: //www.w3schools.com/sql/) –

+0

@PierGiorgioMisley, я действительно не могу понять, как вернуть текущий элемент, а не весь столбец. Пожалуйста, помогите. – androiddev

+0

mate, прочитайте сообщения, которые я связал. Это SQLite, SQLite, Cursor и примеры запросов. –

ответ

0

курсор запроса в DBManager.class

public Cursor linkColumn(long _id) { 
    String[] itemById = new String[]{DatabaseHelper.LINK}; 
    Cursor cursor = sqLiteDatabase 
      .query(
        DatabaseHelper.TABLE_NAME, 
        itemById, 
        DatabaseHelper.ID + "=" + _id, 
        null, 
        null, 
        null, 
        null); 
    if (cursor != null) { 
     cursor.moveToFirst(); 
    } 
    return cursor; 
} 

щелкнув по пункту

@Override 
    public void onItemClick(long _id) { 
    Intent returnIntent = new Intent(); 
    Cursor cursor = dbManager.linkColumn(_id); 
    if(cursor.getCount()!=0){ 
    String item = cursor.getString(cursor.getColumnIndex(DatabaseHelper.LINK)); 
    returnIntent.putExtra("link", item); 
    setResult(RESULT_OK, returnIntent); 
    finish();} 
    cursor.close(); 
    }