شرح أضافة عداد تنازلي لتطبيق الأندرويد برمجياً

بسم الله الرحمن الرحيم

أضافة ميزة (المؤقت) أو العداد التنازلي من الأشياء المهمة لتطبيقات (الألغاز) و (الأسئلة) و سوف تكون أضافة جميلة إذا قمت بأضافتها على تطبيقك من أجل زيادة حماس المستخدم اثناء استخدام التطبيق و لكي لا  يشعر بالملل

نبدأ الشرح 

أولاً يجب علينا عمل import  لمكتبة (المؤقت)  كما في الأمر التالي :

import android.os.CountDownTimer;

و الأوامر التي يحتويها كلاس العداد التنازلي هي :

  • synchronized final CountDownTimer start() : و هذه الميثود تستدعى عندما يبدأ العداد التنازلي .
  • synchronized final void cancel() : و هذه الميثود تستخدم لإيقاف العداد التنازلي .
  • abstract void onFinish() : تستدعى هذه الميثود عن انتهاء الوقت .
  • abstract void onTick(long millisUntilFinished) : تستخدم لتنفيذ أوامر معينة خلال عمل العداد التنازلي

و أيضاً لدينا (الكونسركتور) التالي الذي سوف نحدد من خلاله المدة الزمنية للمؤقت

CountDownTimer(long millisInFuture, long countDownInterval)

و سوف نرى الأن من خلال الشرح كيف نستخدم الأوامر السابقة :

ثانياً ملف الليوات activity_main.xml :

و هو بسيط يحتو على (بروغرس بار ) يظهر لنا الوقت و لدينا أيضاً  أزرار , الأول سوف نستخدمه لبدء العداد التنازلي , و الثاني سوف يكون لإيقاف العداد التنازلي

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 
    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:indeterminate="false"
        android:max="10"
        android:minHeight="50dp"
        android:minWidth="200dp"
        android:progress="0"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start Timer"
        android:id="@+id/button"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="61dp" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop Timer"
        android:id="@+id/button2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="46dp"
        android:layout_below="@+id/progressBar" />
 
</RelativeLayout>

ثالثاً ملف MainActivity.java
و الذي يحتوي على الأكود كاملة و فوق كل كود يوجد شرح أيضاً

package com.andrody.countdowntimer;
 
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
 
    ProgressBar progressBar;
    Button start_timer,stop_timer;
    MyCountDownTimer myCountDownTimer;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 // هنا قمنا بربط الأزرار و البروغرس بار مع الليوات 
        progressBar=(ProgressBar)findViewById(R.id.progressBar);
        start_timer=(Button)findViewById(R.id.button);
        stop_timer=(Button)findViewById(R.id.button2);
 
 
 // و هنا عند الضغط على  الزر يبدأ العداد التنازلي 
        start_timer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 //و هنا المدة الزمنية للعداد التنازلي من 10 ثواني إلى 1 ثانية و الرقم موضوع بالميلي ثانية 
                myCountDownTimer = new MyCountDownTimer(10000, 1000);
                myCountDownTimer.start();
 
            }
        });
 // و هنا عند الضغط على هذا الزر يتوقف العداد التناازلي 
        stop_timer.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                myCountDownTimer.cancel();
 
            }
        });
 
    }
 // و هنا ربط العداد التنازلي مع البروغرس بار 
    public class MyCountDownTimer extends CountDownTimer {
 
        public MyCountDownTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
 
        @Override
        public void onTick(long millisUntilFinished) {
 
            int progress = (int) (millisUntilFinished/1000);
 
 
            progressBar.setProgress(progressBar.getMax()-progress);
        }
 
        @Override
        public void onFinish() {
            finish();
        }
    }
}

و هكذا نكون قد أنتهينا من هذا الشرح البسيط

لا تنسو لأشتراك في صفحتنا على الفيس بوك لكي تصلكم شروحاتنا الجديدة

 

android-countdowntimer-example

About محبوب الحسين

محبوب الحسين : من سورية , مهتم بجديد تكنولوجيا المعلومات و ببرمجة و تطوير تطبيقات الأندرويد و بدايتي مع برمجة تطبيقات الأندرويد كانت من هنا "أندرودي عربي"

Check Also

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (1)

هل لديك تدوينة أو موقع إخباري ؟ أو معرض يعرض الكثير من البيانات من وسائط ؟ وبحاجة لعرضها في تطبيق اندرويد ؟ هذه فرصتك من هنا وللمبتدئين تعلم برمجة تطبيق لمدونتك

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

3 comments

  1. بارك الله فيك اخى الكريم

    عندى سؤال لو سمحت .. ياريت تقولى ايه الخطوات اللى اتعمل بيها لعبه وصله الشهيرة ع المتجر

    الادوات المسخدمه ايه هى وشكرا لك

  2. لو سمحتو نريد اكواااد جاهزة لبرنامج MPBOROPO برنامج التحكم بالندرويد

  3. شرح فعلا مميز ورائع يستحق التعليق والجهد المبذول فيه

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.