Autore Topic: countdown non parte!!  (Letto 275 volte)

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
countdown non parte!!
« il: 19 Giugno 2015, 20:51:11 CEST »
0
ciao a tutti!!

ho creato un countdown dove con un button vorrei far partire i numeri di secondi inseriti nella edittext ma quando clicco non succede nulla!!

questo è il codice:

Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity {

         private CountDownTimer countDownTimer;
         private boolean timerHasStarted = false;
         private Button startB;
         public TextView text;
         //private final long startTime = 30 * 1000;
         private final long interval = 1 * 1000;
         
         EditText edit_text;
         String s1;
         int num;
         

         @Override
         public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
         
          try {
                  text = (TextView) this.findViewById(R.id.timer);
                  edit_text = (EditText)findViewById(R.id.edit_text);
                  s1 = edit_text.getText().toString();
                  num = Integer.parseInt(s1) * 1000;
       
                  countDownTimer = new MyCountDownTimer(num, interval);
                  text.setText(text.getText() + String.valueOf(num / 1000));
                  startB = (Button) this.findViewById(R.id.button);
                  startB.setOnClickListener(new OnClickListener() {              
                          @Override
                          public void onClick(View arg0) {
                                  if (!timerHasStarted) {
                                          countDownTimer.start();
                                          timerHasStarted = true;
                                          startB.setText("STOP");
                                          Toast.makeText(getApplicationContext(), num, Toast.LENGTH_SHORT).show();
                                  } else {
                                          countDownTimer.cancel();
                                          timerHasStarted = false;
                                          startB.setText("RESTART");
                                  }
                          }
                  });            
                 
                 
          }catch(Exception ex) {
                  ex.printStackTrace();
          }
         }

         public class MyCountDownTimer extends CountDownTimer {
          public MyCountDownTimer(long startTime, long interval) {
           super(startTime, interval);
          }

          @Override
          public void onFinish() {
           text.setText("Time's up!");
          }

          @Override
          public void onTick(long millisUntilFinished) {
           text.setText("" + millisUntilFinished / 1000);
          }
         }

        }

dove sbaglio??

ah! se dovessi togliere il try mi da errore al:
num = Integer.parseInt(s1) * 1000;

come ma?

help!!

Post unito: 19 Giugno 2015, 21:52:17 CEST
risolto!!  :D

con questo cod:
Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
 
public class MainActivity extends Activity {

         private CountDownTimer countDownTimer;
         private boolean timerHasStarted = false;
         private Button startB;
         public TextView text;
         //private final long startTime = 30 * 1000;
         private final long interval = 1 * 1000;
         
         EditText edit_text;
         String s1;
         long num;
         

         @Override
         public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
         
         
                  text = (TextView) this.findViewById(R.id.timer);
                  edit_text = (EditText)findViewById(R.id.edit_text);
                 
                  startB = (Button) this.findViewById(R.id.button);
                  startB.setOnClickListener(new OnClickListener() {              
                          @Override
                          public void onClick(View arg0) {
                                  s1 = edit_text.getText().toString();
                                  num =Long.parseLong(s1) * 1000;
                                  countDownTimer = new MyCountDownTimer(num, interval);
                                  text.setText(text.getText() + String.valueOf(num / 1000));
                                  if (!timerHasStarted) {
                                          countDownTimer.start();
                                          timerHasStarted = true;
                                          startB.setText("STOP");
                                         
                                  } else {
                                          countDownTimer.cancel();
                                          timerHasStarted = false;
                                          startB.setText("RESTART");
                                  }
                          }
                  });              
         }

         public class MyCountDownTimer extends CountDownTimer {
                 public MyCountDownTimer(long startTime, long interval) {
                         super(startTime, interval);
                 }
                 @Override
                 public void onFinish() {
                         text.setText("Time's up!");
                 }     
                 @Override
                 public void onTick(long millisUntilFinished) {
                         text.setText("" + millisUntilFinished / 1000);
                 }
         }

}
« Ultima modifica: 19 Giugno 2015, 21:52:17 CEST da paul78, Reason: Merged DoublePost »
tutti possiamo programmare...basta volerlo!!!