2015-06-22 6 views
-4

Я пытаюсь взять int из SharedPreferences, который отслеживает, как долго программа приложения активна, и уменьшает ее до значения менее 7, чтобы показать, в какой день этой недели программы пользователь in.В то время как цикл для сокращения int в android

Вот что я использовал для уменьшения int, (я пытаюсь использовать цикл while для входа и вычитания 7 до тех пор, пока значение int меньше 7. Оператор IF был добавлен, чтобы узнать, был сокращен, и он показывал неправильную строку)

public void methodNameHere() { 
     SharedPreferences onvalue = getApplicationContext().getSharedPreferences("TRAININGDAY", MODE_APPEND); 
     int day = (int) onvalue.getLong("DAY", 0); 
     SharedPreferences.Editor edit = onvalue.edit(); 

     while (day < 7) { 
      day = day - 7; 
     } 

     if (day < 7) { 
      String da = Integer.toString(day); 
      Toast.makeText(CardioStart.this, da, Toast.LENGTH_LONG).show(); 
     } else { 
      Toast.makeText(CardioStart.this, "f?*k", Toast.LENGTH_LONG).show(); 
     } 
    } 

и это где ИНТ приходит от:

private void dayOfTraining() { 

     TextView day = (TextView) findViewById(R.id.dayoftraining); 
     date.setTimeInMillis(millidate); 

     Calendar someday = Calendar.getInstance(); 
     someday.set(2015, 4, 25); 

     Calendar today = Calendar.getInstance(); 
     Long millidate = someday.getTimeInMillis(); 
     long timeTwo = today.getTimeInMillis(); 
     long oneDay = 1000 * 60 * 60 * 24; 
     long delta = (timeTwo - millidate)/oneDay; 
     long actualday = delta + 1; 
     day.setText(Long.toString(actualday)); 

     SharedPreferences onvalue = getApplicationContext().getSharedPreferences("TRAININGDAY", MODE_APPEND); 
     SharedPreferences.Editor edit = onvalue.edit(); 
     edit.putLong("DAY", actualday); 
     edit.commit(); 

    } 

String da тосты как «29», поэтому кажется, что он не уменьшается.

Я чувствую, что мне не хватает чего-то простого или у меня просто нет истинного понимания использования циклов while. Любая помощь будет принята с благодарностью. Спасибо.

+0

Можете ли вы исправить ваши отступы, пожалуйста? – khelwood

+0

Возможно, вам следует узнать, что такое оператор modulo (%) и делает ... – Durandal

+0

'while (day <7)' уверен в этом? – njzk2

ответ

1

В то время как заявление неверно, вы должны проверить while(day > 7) -> do this не while(day < 7). Код -

while (day > 7) 
{ 
day = day - 7; 
} 
+0

Ничего себе. Просто вау. Я манекен. Спасибо, что указали это, и не взорвали мое место для того, чтобы быть дураком. Ура! –

+0

Порекомендуйте вам принять ответ (нажав на отметку слева), чтобы другие не могли решить вопрос. –

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