2
У меня есть вид, и я хочу добавить на него хронометр. Затем, на ничью, я хочу отобразить текущее время. Вот как я это сделал:Android Хронометр не начинается
public class MyView extends View {
private Chronometer chrono;
private long elapsedTime=0;
private String currentTime="00:00:00";
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
init(context);
}
private void init(Context ctx){
chrono= new Chronometer(ctx);
chrono.setText("Time: 00:00:00");
chrono.setOnChronometerTickListener(new OnChronometerTickListener()
{
public void onChronometerTick(Chronometer arg0) {
String HH =((elapsedTime/3600) < 10 ? "0" : "") + (elapsedTime/3600);
String MM =((elapsedTime/60) < 10 ? "0" : "") + (elapsedTime/60);
String SS =((elapsedTime % 60) < 10 ? "0" : "") + (elapsedTime % 60);
String currentTime = HH+":"+MM+":"+SS;
elapsedTime = (SystemClock.elapsedRealtime() - arg0.getBase())/1000;
arg0.setText(currentTime);
}
}
);
}
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawText(currentTime, someWidth , someHeight, somePaint);
}
Начальный текст 00:00:00 нарисован, но он не изменяется. Я должен делать что-то неправильно. Есть идеи ?
попробуйте назвать «super.onDraw (canvas)» внутри вашей переопределенной функции. – st0le
btw, где находится 'chrono.start()' и 'chrono.setBase()'? внутри 'onCreate()'? – st0le
chrono.start() - insde init(). Я добавил super.onDraw (холст) в нижней части onDraw, но все равно никакого эффекта. Не обновляется. – Alin