2013-07-05 2 views
0

Я пытаюсь изменить каждое значение в столбце «Дата». В основном это связано с циклическим перемещением по столбцу и изменением каждой записи до последней разницы в день. Проблема в том, что мой код постоянно меняет все на одно и то же значение. Поэтому, в основном, хотя «дни, оставшиеся» для каждой записи, должны быть разными, все сводится к одному числу. Это мой код.Цикл курсора Android через столбец

String[] projection = { HabitTable.COLUMN_ENDDATE, HabitTable.COLUMN_ID }; 
     //Get end date from database 
     Cursor mCursor = getContentResolver().query(MyHabitContentProvider.CONTENT_URI, projection, 
       null, null, null); 
     //Store end date in array 
     if(mCursor != null){ 
      do{ 
       endDate = mCursor.getString(mCursor.getColumnIndexOrThrow(HabitTable.COLUMN_ENDDATE)); 

       //Whole bunch of code to calculate days left 
       String[] eDate = endDate.split("-"); 
       int eDay = Integer.parseInt(eDate[0]); 
       int eMonth = Integer.parseInt(eDate[1]); 
       eMonth--; 
       int eYear = Integer.parseInt(eDate[2]); 
       Calendar cNow = Calendar.getInstance(); 
       Calendar cEnd = Calendar.getInstance(); 
       cEnd.set(Calendar.DAY_OF_MONTH, eDay); 
       cEnd.set(Calendar.MONTH, eMonth); 
       cEnd.set(Calendar.YEAR, eYear); 
       long diff = cEnd.getTimeInMillis() - cNow.getTimeInMillis(); 
       long days = diff/(24 * 60 * 60 * 1000); 
       if(days <= 0){ 
        days = 0; 
       } 

       String y = String.valueOf(days); 

       ContentValues values = new ContentValues(); 
       values.put(HabitTable.COLUMN_DAYSLEFT, y); 
       getContentResolver().update(MyHabitContentProvider.CONTENT_URI,values, null, null); 
      }while(mCursor.moveToNext()); 
     }mCursor.close(); 

Есть ли какая-то большая ошибка, которую я сделал, я не поймал?

ответ

0

Я думаю, что ур недостающее это идентификатор обновления

попробовать, как этот

ContentValues values = new ContentValues(); 
values.put(HabitTable.COLUMN_DAYSLEFT, y); 
// Apply condition here 
String where = HabitTable.COLUMN_ID+"="+mCursor.getString(mCursor.getColumnIndexOrThrow(HabitTable.COLUMN_ID)); 
getContentResolver().update(MyHabitContentProvider.CONTENT_URI,values, where , null); 

here хороший пример ..

+0

Я думаю, что вы правы .. Я с помощью тот же URI. – user2525981

+0

Не могли бы вы показать мне свой ответ до вашего предыдущего редактирования? Я был просто посреди чтения и не смог закончить, и я думаю, что это могло бы помочь мне понять немного слишком – user2525981

+0

, пожалуйста, посетите здесь http://www.anddev.org/other-coding-problems-f5/ how-to-use-getcontentresolver-update-t44066.html –

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