2015-03-26 5 views
0

Я хочу отобразить доход человека за определенное время. Для этого я прошу доход в месяц (= gehalt) и рабочее время в неделю (stunden) в другом мероприятии. Затем во втором действии я хочу увеличить TextView showGehaltproSekunde (id = textViewZahl) каждую секунду на доход в секунду. Я новичок, поэтому не знаю, что именно мне нужно писать в public void run(). Или есть еще одна возможность увеличить число каждую секунду? Надеюсь, кто-то может мне помочь. Спасибо!Android Studio: добавьте номер каждую секунду

public class SecondScreen extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.secondlayout); 
    Timer t, timer; 

    Intent getGehalt = getIntent(); 
    float gehalt = getGehalt.getFloatExtra("Gehalt", 0); 

    Intent getStunden = getIntent(); 
    float stunden = getStunden.getFloatExtra("Stunden", 0); 

    double gehaltProSekunde = gehalt/4/stunden/3600; 
    double gehaltProSekundeRounded = Math.round(gehaltProSekunde*1000)/1000.0; 

    TextView showGehaltProSekunde = (TextView)findViewById(R.id.textViewZahl); 
    showGehaltProSekunde.setText(gehaltProSekundeRounded+" €"); 

    t = new Timer(); 
    t.scheduleAtFixedRate(new TimerTask() { 
     @Override 
     public void run() { 

     } 
    }); 
} 

}

ответ

4

Для примера анализа это:

private Handler mHandler = new Handler(); 
private boolean wasRun = true; 
mHandler.postDelayed(new Runnable() { 
@Override 
public void run() { 
    if(wasRun){    
     //whatever you want to do if run 
     //you can add you want to increase variable here 
    } 
    mHandler.postDelayed(this, 1000); 
} 
}1000); // 1 seconds 
+0

, и если вы хотите остановить увеличение, вы можете wasRun = false; –

+0

Он работает! Спасибо. Отображаемый номер увеличивается, но когда он имеет определенные значения, он suddently становится действительно большим, как 0,45000000000000003, а не просто показывает 2 десятичных знака. Это из-за моего метода округления? Или у кого-нибудь есть идея? – maidi

+0

можно, вы можете попробовать удалить раунд –

0

Просто чтобы дать несколько советов строго не связанные с вашим вопросом (@altan Yuksel ответил хорошо), я просто хотел, чтобы бросить мой в ваших расчетах.

Вы рассчитываете месячную зарплату в секундах, используя зарплату/4 часа работы в неделю/3600 (секунды в час), однако не все месяцы имеют ровно 4 рабочих недели (фактически только в феврале).

Могу ли я предложить просить годовой заработной платы и выполнение:
годовой заработной платы/52/количество отработанных часов в неделю/3600

или с текущими входными данными:
(зарплата * 12)/52/количество отработанных часов в неделю/3600

Если вы попробуете их самостоятельно, вы можете найти их более точными.

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