Je ces varibles:variable est accessible à partir de la classe intérieure
private boolean MineRunning;
private BigInteger MineProfit;
etc....
Je veux appeler la méthode du compte à rebours:
countdown(MineRunning, MineProfit, MineTime, MineProgressbar, MineProgressstatus);
ca. 10 fois pour des choses différentes
La méthode:
private void countdown(boolean running, BigInteger profit, BigInteger time, ProgressBar progressBar, int progressStatus) {
if(!running && Reference.Storage_Filled.add(profit).compareTo(Reference.Storage_Capacity) == 0 ||
!running && Reference.Storage_Filled.add(profit).compareTo(Reference.Storage_Capacity) == -1){
running = true;
new CountDownTimer(time.longValue(), Reference.countDownInterval.longValue()){
public void onTick(long millisUntilFinished){
progressStatus++;
progressBar.setProgress(progressStatus);
}
public void onFinish(){
Reference.totalGravel = Reference.totalGravel.add(profit);
Gravelrefresh();
progressStatus = 0;
progressBar.setProgress(progressStatus);
running = false;
}
}.start();
}
}
Si j'appelle cette méthode que je reçois une erreur:
variable is accessed from within inner class
Je ne veux pas faire les varibles à final
parce que je dois modifier ceux-ci dans la méthode. Que puis-je faire à la place? Merci.
Si je fais la course finale = false; ne fonctionne pas –
Cela ne fonctionnera pas de toute façon - vous avez une fonction asycnhronous essayant d'accéder et de modifier une variable locale. C'est impossible. C'est pourquoi la règle existe. Courir doit être une variable de niveau de classe, pas un paramètre à une fonction –