Обновлять время

237
25 апреля 2017, 06:25

Вывожу время в TextView через SimpleDateFormat. А как обновлять время в приложении? В статус баре если например уже 18:02, то в приложении у меня так и висит 18:00

Answer 1

Можно использовать кастомную вьюшку наследующую TextView

public class TextClockView extends android.support.v7.widget.AppCompatTextView{
private SimpleDateFormat mDateFormat;
public TextClockView(Context context) {
    super(context);
    init();
}
public TextClockView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
    init();
}
public TextClockView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
}
private void init(){
    mDateFormat = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
}
@Override
protected void onAttachedToWindow() {
    super.onAttachedToWindow();
    getHandler().post(new Runnable() {
        @Override
        public void run() {
            Date date=new Date(System.currentTimeMillis());
            setText(mDateFormat.format(date));
            getHandler().postDelayed(this, 1000);
        }
    });
}
@Override
protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();
    getHandler().removeCallbacksAndMessages(null);
}
}

Или поискать уже готовый виджет в сдк, к примеру android.widget.Chronometer

Answer 2

Попробуй метод invalidate() для обновления view

READ ALSO
Программа в Java [требует правки]

Программа в Java [требует правки]

Помогите с написанием программы в Java) Плиииииз Дана дійсна квадратна матриця n n елементівСформувати дійсний вектор з елементів матриці,...

244
Работа с интерфейсами в Java

Работа с интерфейсами в Java

Есть интерфейс:

225