0

私のjsonをonClick in adapterを使ってデータベースに保存します。取得するための は、jsonの行がデータベースに存在するかどうか、またはそのためにヘルパーメソッドが必要です。これは私の方法ですが、仕事ではありません。知っているためのヘルパーメソッドは、json行がデータベースに存在するかどうかですか?

私はQuestionDatabaseAdapter

public Boolean isQuestionFavorite(String rawQuestionid) { 
     SQLiteDatabase database = null; 
     Cursor c = null; 

     try { 
      c = database.rawQuery("SELECT question_id FROM tbl_questions WHERE question_id = ' " + rawQuestionid + " ' ", null); 
      Log.i("CURSOR VALUE ",c.toString()); 

     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } finally { 
      if (database != null && database.isOpen()) { 
       database.close(); 
      } 
     } 

     if (c != null) { 
      if (c.moveToFirst()) { 
       return true; 
      } 
     } 
     return false; 
    } 

でこのメソッドを記述し、行がdatabseに存在する場合、私はチェックこれらの作品を行います。 (リサイクラー OnBindViewHolderで)

///========================== FAVORITE CHECKING ======================== 

     boolean isFavorite = questionDatabaseAdapter.isQuestionFavorite(questionha.get(position).getQuestionId()); 

     if(isFavorite){ 
      holder.imgAddFav.setImageResource(R.drawable.ic_favorite_red_700_24dp); 
     }else { 
      holder.imgAddFav.setImageResource(R.drawable.ic_favorite_border_red_a700_24dp); 
     } 

しかし、私はこのエラーを取得:

java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.database.Cursor.moveToFirst()' on a null object reference 

答えて

1

database.rawQuery()はそう前c.moveToFirst()を呼び出すには、nullを返すことができますc != nullかどうかを確認する必要があります。

+0

私はこの仕事のための私の解決策(私の平均的なヘルパーメソッドとアダプタのチェックイン)ですが、私は文を返すべきだと言っていますが、内部メソッドの返り値です。 –

+0

一見するとうまくいくはずです。 – Egor

+0

と私は声明を返すべきだと言っていますが、内側のメソッド –

関連する問題