Таймер обратного отсчета

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

Event=new String(Edt.getText().toString());
final int time = Integer.parseInt(sec.getText().toString());

Intent myInt = new Intent(MainActivity.this,Receiver.class);

myInt.putExtra("key",Event);
endingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this,2,myInt,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+(time*1000),pendingIntent);

new CountDownTimer(time*1000, 1000) {

    @Override
    public void onTick(long millisUntilFinished) {
    // TODO Auto-generated method stub
        txtV.setText("Activity starts"+millisUntilFinished/1000+"seconds"); // here is the txtV which isn't shown 
    }

    @Override
    public void onFinish() {
        // TODO Auto-generated method stub

    }
};

person Marques    schedule 25.03.2013    source источник
comment
Как насчет того, чтобы начать CountDownTimer?   -  person Vladimir Mironov    schedule 25.03.2013


Ответы (1)


Сначала вам нужно запустить счетчик, вызвав метод start

Но будьте осторожны, вы можете изменить представление только из потока, создавшего это представление. Один из способов сделать это — опубликовать runnable на просмотре:

    CountDownTimer timer = new CountDownTimer(time*1000, 1000) {

        @Override
        public void onTick(long millisUntilFinished) {
            txtV.post(new Runnable() {
                @Override
                public void run() {
                            txtV.setText("Activity starts"+millisUntilFinished/1000+"seconds"); // here is the txtV which isn't shown 
                }
            });
        }

        @Override
        public void onFinish() {
            // TODO Auto-generated method stub

        }
    };
    timer.start();
person neworld    schedule 25.03.2013