6
हे सब, मैं अपने काउंटरडाउन टाइमर को शून्य तक पहुंचने के बाद अपने मूल समय पर ऑटोरेसेट करने की कोशिश कर रहा हूं। अनंत लूप की तरह।उलटी गिनती समाप्त होने के बाद मैं अपने काउंटरडाउन टाइमर को रीसेट करने की अनुमति कैसे दे सकता हूं?
package com.android.countdown;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class countdown extends Activity {
public String formatTime(long millis) {
String output = "00:00";
long seconds = millis/1000;
long minutes = seconds/60;
seconds = seconds % 60;
minutes = minutes % 60;
String secondsD = String.valueOf(seconds);
String minutesD = String.valueOf(minutes);
if (seconds < 10)
secondsD = "0" + seconds;
if (minutes < 10)
minutesD = "0" + minutes;
output = minutesD + " : " + secondsD;
return output;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Declare Start/Stop button
Button btnstart = (Button)findViewById(R.id.btnstart);
Button btnstop = (Button)findViewById(R.id.btnstop);
//Declare Text fields to show time left
final TextView mCounter1TextField=(TextView)findViewById(R.id.counter1);
final TextView mCounter2TextField = (TextView)findViewById(R.id.counter2);
final TextView mCounter3TextField=(TextView)findViewById(R.id.counter3);
//Counter 1
final CountDownTimer Counter1 = new CountDownTimer(120000 , 1000) {
public void onTick(long millisUntilFinished) {
mCounter1TextField.setText("Seconds left: " + formatTime(millisUntilFinished));
}
public void onFinish() {
mCounter1TextField.setText("Finished!");
}
};
//Counter 2
final CountDownTimer Counter2 = new CountDownTimer(80000 , 1000) {
public void onTick(long millisUntilFinished) {
mCounter2TextField.setText("Seconds left: " + formatTime(millisUntilFinished));
}
public void onFinish() {
mCounter2TextField.setText("Finished!");
}
};
//Counter 3
final CountDownTimer Counter3 = new CountDownTimer(10000 , 1000) {
public void onTick(long millisUntilFinished) {
mCounter3TextField.setText("Seconds left: " + formatTime(millisUntilFinished));
}
public void onFinish() {
mCounter3TextField.setText("Finished!");
}
};
//Start Button
btnstart.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Counter1.start();
Counter2.start();
Counter3.start();
}
});
//Stop Button
btnstop.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Counter1.cancel();
Counter2.cancel();
Counter3.cancel();
}
});
}
}
मैं समझ नहीं सकता क्या onFinish अंदर डाल करने के लिए()
// संपादित करें \\ मुझे यह काम मिल गया। यह पता चला कि 'अंतिम' इसे सब खराब कर रहा था। मुझे 'काउंटरडाउन टाइमर काउंटर' घोषित करने की आवश्यकता थी इसके बाद 'फाइनल' से छुटकारा पाने के लिए शीर्ष पर। – MJ93
^यही कारण है कि काउंटर 1.स्टार्ट() पहले मेरे लिए काम नहीं कर रहा था। हालांकि आपके इनपुट के लिए धन्यवाद, मुझे इसके बिना समाधान नहीं मिला होगा – MJ93
खुशी है कि यह मदद करता है :) मैंने फाइनल को भी अनदेखा कर दिया है, अंतिम चर केवल एक बार असाइन किया जा सकता है, इसलिए इसकी आवश्यकता नहीं है। – SteD