2016-05-18 4 views
0

Я делаю проект андроида при попытке использовать cursor.getCount(); он дает мне ошибку:cursor.getCount() давая ошибку

cannot resolve symbol getCount();

Вот мой код

class GetNotesFromDbTask extends AsyncTask<Void, Void, Boolean> { 

@Override 
protected Boolean doInBackground(Void... params) { 
    return null; 
} 

@Override 
protected void onPreExecute() { 
    ProgressDialog dialog = new ProgressDialog(NoteDetail.this); 
    dialog.setTitle("Loading"); 
    dialog.setMessage("Please wait.."); 
    dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    dialog.setCancelable(false); 
    dialog.show(); 
} 


SQLiteDatabase db = helpers.getReadableDatabase(); 
String[] projection = { 
     NoteContract.FeedEntry._ID, 
     NoteContract.FeedEntry.NOTES_TITLE, 
     NoteContract.FeedEntry.NOTES_ID, 
     NoteContract.FeedEntry.NOTES_BODY, 

}; 

String sortOrder = 
     NoteContract.FeedEntry.NOTES_ID + " DESC"; 

Cursor cursor = db.query(
     NoteContract.FeedEntry.TABLE_NAME, // The table to query 
     projection,        // The columns to return 
     null,        // The columns for the WHERE clause 
     null,       // The values for the WHERE clause 
     null,          // don't group the rows 
     null,          // don't filter by row groups 
     sortOrder         // The sort order 
); 


if(cursor.getCount()>0) //here i am getting error 

{ 

} 

Я тоже определить курсор, я не понимаю, почему он не работает.

Кроме того,

я попытался if(cursor !=null)

он говорит мне

cursor unknown class

+1

заявления переходят в методы или статические блоки. – njzk2

+1

Я думаю, что ваш код должен скомпилировать ошибку. можете ли вы опубликовать полный код класса «GetNotesFromDbTask»? – pooyan

+0

Я решил. protected Boolean doInBackground (Void ... params) {return null;} автоматически закрывается, потому что этот курсор не работает. –

ответ

1

Ваш код должен находиться внутри метода, который находится внутри класса, а не на самом уровне класса.

Предыдущие строки синтаксически корректны, так как они являются объявлениями переменных и инициализациями. Условное условие if недействительно на уровне класса.

0
  class GetNotesFromDbTask extends AsyncTask<Void, Void, Boolean> { 

      @Override 
      protected Boolean doInBackground(Void... params) { 
     SQLiteDatabase db = helpers.getReadableDatabase(); 
      String[] projection = { 
        NoteContract.FeedEntry._ID, 
        NoteContract.FeedEntry.NOTES_TITLE, 
        NoteContract.FeedEntry.NOTES_ID, 
        NoteContract.FeedEntry.NOTES_BODY, 

      }; 

      String sortOrder = 
        NoteContract.FeedEntry.NOTES_ID + " DESC"; 

      Cursor cursor = db.query(
        NoteContract.FeedEntry.TABLE_NAME, // The table to query 
        projection,        // The columns to return 
        null,        // The columns for the WHERE clause 
        null,       // The values for the WHERE clause 
        null,          // don't group the rows 
        null,          // don't filter by row groups 
        sortOrder         // The sort order 
      ); 


      if(cursor.getCount()>0) //here i am getting error 

      { 

      } 
       return null; 
      } 

      @Override 
      protected void onPreExecute() { 
       ProgressDialog dialog = new ProgressDialog(NoteDetail.this); 
       dialog.setTitle("Loading"); 
       dialog.setMessage("Please wait.."); 
       dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
       dialog.setCancelable(false); 
       dialog.show(); 
      } 

      } // this line add asynctask class end 

      protected void onCreate(Bundle savedInstanceState) { 

      GetNotesFromDbTask gnfd=new GetNotesFromDbTask(); 
      //asynctask run onpre ->onbackground->onpost 
gnfd.execute(); 


     } 
Смежные вопросы