2015-09-29 2 views
1

Здесь, в CountDownTimer ниже, я хочу, чтобы пользователь вводил значение в миллисекундах вместо предварительно загруженного значения 30000. Пожалуйста, помогите в этом случае. Я не могу понять себя.Как принимать данные от пользователя при использовании CountDownTimer в android

public class MainActivity extends AppCompatActivity { 

    TextView mTextField; 
    EditText mEditText; 
    Button mButton; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mTextField = (TextView) findViewById(R.id.timerView); 
     mButton = (Button) findViewById(R.id.startButton); 


     mButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Turning of the button until the timer finishes 
       mButton.setEnabled(false); 
       mButton.setClickable(false); 

       new CountDownTimer(30000, 1000) { // Here I want to have a user input value in milli seconds instead of pre loaded value of 30000 

        public void onTick(long millisUntilFinished) { 
         mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
        } 

        public void onFinish() { 
         mTextField.setText("done!"); 
         // Turning on the button when the timer has finnished 
         mButton.setEnabled(true); 
         mButton.setClickable(true); 
        } 
       }.start(); 


      } 
     }); 

    } 

}**strong text** 

ответ

2

Это очень просто, дайте какой-либо параметр для ввода данных пользователя, как в тексте редактирования, а затем передать эти значения в качестве параметров в CountDownTimer.

// 3000 and 200 will be input from user 
long millisinFuture= 3000; 
long delayTime=200; 

new CountDownTimer(millisinFuture, delayTime) { // Here I want to have a user input value in milli seconds instead of pre loaded value of 30000 

       public void onTick(long millisUntilFinished) { 
        mTextField.setText("seconds remaining: " + millisUntilFinished/1000); 
       } 

       public void onFinish() { 
        mTextField.setText("done!"); 
        // Turning on the button when the timer has finnished 
        mButton.setEnabled(true); 
        mButton.setClickable(true); 
       } 
      }.start(); 
+0

Благодарим вас за ответ. Я хочу взять целочисленный ввод, но как я могу преобразовать его в миллисекунды, чтобы передать его в CountDowntimer. – Saqib

+0

вам нужно будет решить, хотите ли вы вводить данные в часах, секундах или минутах, если секунды вы можете преобразовать, используя следующие стандартные 1 секунду = 1000 миллисекунд, и вы должны хорошо знать, как использовать long и int – Aakash

+0

На самом деле я имею проблема при разборе поля «Редактировать текст». Невозможно найти правильный синтаксис для синтаксического анализа значения текстового значения, которое я принимаю как целое число в миллисекундах – Saqib