मेरे पास xml में दो संपादन ग्रंथ हैं, एक edittext उपयोगकर्ता में एक मिनट के रूप में और दूसरे में सेकंड के रूप में एक नंबर डाल सकते हैं। फिनिश बटन पर क्लिक करने के बाद सेकंड एडिटेक्स्ट को उलटी गिनती शुरू करनी चाहिए और हर सेकेंड में अपना टेक्स्ट अपडेट करना चाहिए। आम तौर पर जब तक यह शून्य मिनट शून्य सेकंड में नहीं आता है तब तक मैं इसे अद्यतन कैसे रख सकता हूं?एंड्रॉइड में उलटी गिनती टाइमर कैसे बनाएं?
उत्तर
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
//here you can have your logic to set text to edittext
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
इस link का संदर्भ लें।
यह एक अच्छा जवाब है, लेकिन क्या कोई मुझे 30 सेकंड इनपुट करने के बजाय कस्टम सेट उलटी गिनती समय कैसे दिखा सकता है? मैंने एडिटटेक्स्ट से मूल्य प्राप्त करने का प्रयास किया लेकिन यह बिल्कुल काम नहीं कर रहा था। – edwoollard
क्या होगा अगर मैं एक सेट अलार्म पर CountDownTimer का आधार बनाना चाहता था? मुझे कैसे पता चलेगा कि कितने मिलिस खत्म नहीं हुए? –
क्या आप जानते हैं कि 'उलटी गिनती' के लिए कोई विराम विधि है या नहीं?तो कहें कि उपयोगकर्ता एक गेम को रोकना चाहता था, उन्होंने एक बटन पर क्लिक किया और उलटी गिनती टाइमर रुक गया और जब वे खेल पर क्लिक करते हैं तो यह टिक टिकता रहता है? – James111
बस निम्नलिखित कोड पेस्ट कॉपी ........
MainActivity
पैकेज com.example.countdowntimer;
import java.util.concurrent.TimeUnit;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView text1;
private static final String FORMAT = "%02d:%02d:%02d";
int seconds , minutes;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text1=(TextView)findViewById(R.id.textView1);
new CountDownTimer(16069000, 1000) { // adjust the milli seconds here
public void onTick(long millisUntilFinished) {
text1.setText(""+String.format(FORMAT,
TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - TimeUnit.HOURS.toMinutes(
TimeUnit.MILLISECONDS.toHours(millisUntilFinished)),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - TimeUnit.MINUTES.toSeconds(
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
}
public void onFinish() {
text1.setText("done!");
}
}.start();
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="34dp"
android:layout_marginTop="58dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
निष्पादित करता है, लेकिन जब मेरे मोबाइल ने इसे रोक दिया और जब मैंने अनलॉक किया तो यह फिर से शुरू हो जाएगा .. मैं टाइमर जारी रखने के लिए क्या कर सकता हूं ?? –
कृपया कोड की प्रतिलिपि चिपकाने के लिए प्रोत्साहित न करें। दस्तावेज़ीकरण और स्पष्टीकरण का एक लिंक एक बेहतर जवाब होगा। – mshukla
MainActivity.java
package com.zeustechnocrats.countdown;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
private String EVENT_DATE_TIME = "2018-12-31 10:30:00";
private String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
private LinearLayout linear_layout_1, linear_layout_2;
private TextView tv_days, tv_hour, tv_minute, tv_second;
private Handler handler = new Handler();
private Runnable runnable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.count_down);
initUI();
countDownStart();
}
private void initUI() {
linear_layout_1 = findViewById(R.id.linear_layout_1);
linear_layout_2 = findViewById(R.id.linear_layout_2);
tv_days = findViewById(R.id.tv_days);
tv_hour = findViewById(R.id.tv_hour);
tv_minute = findViewById(R.id.tv_minute);
tv_second = findViewById(R.id.tv_second);
}
private void countDownStart() {
runnable = new Runnable() {
@Override
public void run() {
try {
handler.postDelayed(this, 1000);
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
Date event_date = dateFormat.parse(EVENT_DATE_TIME);
Date current_date = new Date();
if (!current_date.after(event_date)) {
long diff = event_date.getTime() - current_date.getTime();
long Days = diff/(24 * 60 * 60 * 1000);
long Hours = diff/(60 * 60 * 1000) % 24;
long Minutes = diff/(60 * 1000) % 60;
long Seconds = diff/1000 % 60;
//
tv_days.setText(String.format("%02d", Days));
tv_hour.setText(String.format("%02d", Hours));
tv_minute.setText(String.format("%02d", Minutes));
tv_second.setText(String.format("%02d", Seconds));
} else {
linear_layout_1.setVisibility(View.VISIBLE);
linear_layout_2.setVisibility(View.GONE);
handler.removeCallbacks(runnable);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
handler.postDelayed(runnable, 0);
}
protected void onStop() {
super.onStop();
handler.removeCallbacks(runnable);
}
}
activity_ma in.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/linear_layout_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:gravity="center_horizontal"
android:visibility="gone">
<TextView
android:id="@+id/tv_event"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="Android Event Start"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="normal" />
</LinearLayout>
<LinearLayout
android:id="@+id/linear_layout_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_days"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="00"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_days_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Days"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="normal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="00"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_hour_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Hour"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="normal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_minute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="00"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_minute_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Minute"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="normal" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="00"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_second_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Second"
android:textColor="@android:color/white"
android:textSize="20dp"
android:textStyle="normal" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
क्यों 'हैंडलरपोस्टडेलेड (रननेबल, 1 * 1000); '?? –
गतिविधि नष्ट हो जाने के बाद टाइमर को साफ़ करना न भूलें। अन्यथा आप स्मृति रिसाव – Bugdr0id
हैंडलर.postDelayed (runnable, 0) = handler.post (runnable) के साथ भेज देंगे –
बस गुजर सेकंड और TextView वस्तु द्वारा समारोह नीचे कॉल
public void reverseTimer(int Seconds,final TextView tv){
new CountDownTimer(Seconds* 1000+1000, 1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished/1000);
int minutes = seconds/60;
seconds = seconds % 60;
tv.setText("TIME : " + String.format("%02d", minutes)
+ ":" + String.format("%02d", seconds));
}
public void onFinish() {
tv.setText("Completed");
}
}.start();
}
आप (के रूप में स्वीकार जवाब में बताया गया) नीचे दिए गए कोड का उपयोग करता है, तो,
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished/1000);
//here you can have your logic to set text to edittext
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
यदि आप संदर्भों को सावधानीपूर्वक साफ नहीं करते हैं, तो इस गतिविधि का उदाहरण जहां आप इस कोड का उपयोग करते हैं, उसके उदाहरण की स्मृति रिसाव होगी।
निम्नलिखित कोड
//Declare timer
CountDownTimer cTimer = null;
//start timer function
void startTimer() {
cTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
}
};
cTimer.start();
}
//cancel timer
void cancelTimer() {
if(cTimer!=null)
cTimer.cancel();
}
का उपयोग आप cTtimer.cancel() जब भी OnDestroy()/onDestroyView(), स्वामित्व वाली गतिविधि में/टुकड़ा कहा जाता है कॉल करने के लिए की जरूरत है।
घंटे मिनट और सेकंड के साथ revers उलटी गिनती टाइमर
public void reverseTimer(int Seconds, final TextView tv) {
new CountDownTimer(Seconds * 1000 + 1000, 1000) {
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished/1000);
int hours = seconds/(60 * 60);
int tempMint = (seconds - (hours * 60 * 60));
int minutes = tempMint/60;
seconds = tempMint - (minutes * 60);
tv.setText("TIME : " + String.format("%02d", hours)
+ ":" + String.format("%02d", minutes)
+ ":" + String.format("%02d", seconds));
}
public void onFinish() {
tv.setText("Completed");
}
}.start();
}
इस तरह का प्रयास करें:
private void startTimer() {
startTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
long sec = (TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)));
Log.e(TAG, "onTick: "+sec);
tv_timer.setText(String.format("(%02d SEC)", sec));
if(sec == 1)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
tv_timer.setText("(00 SEC)");
}
}, 1000);
}
}
public void onFinish() {
tv_timer.setText("Timer finish");
}
}.start();
}
- 1. एंड्रॉइड उलटी गिनती टाइमर समय
- 2. उलटी गिनती टाइमर
- 3. उलटी गिनती टाइमर
- 4. सी # उलटी गिनती टाइमर
- 5. जावास्क्रिप्ट उलटी गिनती टाइमर
- 6. सेकंड उलटी गिनती टाइमर
- 7. एएसपीनेट वेब एप्लिकेशन (सी #) में उलटी गिनती टाइमर कैसे बनाएं?
- 8. मोमेंटज और उलटी गिनती टाइमर
- 9. एंड्रॉइड उलटी गिनती
- 10. एंड्रॉइड प्रोग्रेसबार उलटी गिनती
- 11. जावास्क्रिप्ट, उलटी गिनती टाइमर और प्रदर्शन टेक्स्ट
- 12. एंड्रॉइड उलटी गिनती टाइमर के लिए घंटा/मिनट पिकर
- 13. उलटी गिनती
- 14. चेतावनी संवाद बॉक्स में एक उलटी गिनती टाइमर प्रदर्शित करें
- 15. एक क्षैतिज स्क्रॉलिंग उलटी गिनती टाइमर कैसे कार्यान्वित करता है?
- 16. पायथन और टिंकर के साथ उलटी गिनती टाइमर बनाना?
- 17. आईफोन में यूलाबेल पर उलटी गिनती कैसे दिखाना है?
- 18. एंड्रॉइड काउंटडाउन टाइमर तिथि
- 19. jQuery उलटी गिनती आईई 8
- 20. एंड्रॉयड: निर्धारित करता है, तो सूचनाएं मेरी उलटी गिनती टाइमर अनुप्रयोग में उपयोगकर्ता
- 21. कैसे मैं एक jQuery उलटी गिनती
- 22. पूर्ण टाइमज़ोन का उपयोग कर जावास्क्रिप्ट उलटी गिनती?
- 23. PHP में इसके लिए उलटी गिनती कैसे करें?
- 24. सेलेरी कार्य पर उलटी गिनती रीसेट करें
- 25. उलटी गिनती टाइमर सही क्रोम/सफारी पर प्रस्तुत नहीं करता है, लेकिन फ़ायरफ़ॉक्स
- 26. WinApi (सी ++) में टाइमर कैसे बनाएं?
- 27. जीमेल स्थिति के माध्यम से उलटी गिनती कैसे प्रकाशित करें?
- 28. उलटी गिनती समाप्त होने के बाद मैं अपने काउंटरडाउन टाइमर को रीसेट करने की अनुमति कैसे दे सकता हूं?
- 29. विंडोज फॉर्म एप्लिकेशन में टाइमर जोड़ें
- 30. शून्य पर उलटी गिनती के लिए टेक्स्ट व्यू का उपयोग कैसे करें?
[एंड्रॉयड उलटी गिनती] (के संभावित डुप्लिकेट http://stackoverflow.com/questions/10010684/android -कउंटडाउन) – MByD