因此,我试图在我的应用程序中实现一个简单的计时器,其中我每一秒增加MM:SS显示。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
handler = new Handler();
Runnable runnable = new GameActivity();
handler.postDelayed(runnable, 5000); //Start Incrementing timer after 5s.
}
@Override
public void run() {
// TODO Auto-generated method stub
TextView timeView = (TextView)findViewById(R.id.textView1);
String time = (String) timeView.getText();
if (TimerUtilities.convertMSToSeconds(time) < R.integer.TimeLimit)
{
time = TimerUtilities.incrementOne(time);
timeView.setText(time);
timeView.postInvalidate();
handler.postDelayed(new GameActivity(), 1000);
}
else
{
time = TimerUtilities.incrementOne(time);
timeView.setText(time);
}
}当我查看logcat输出时,我在重写的run方法的findViewById行中得到了一个空指针异常。
由于从处理程序线程读取/更新UI,问题也可能出现。如果是的话,我是否有其他方法可以这样做?
发布于 2014-01-12 01:17:34
正在您创建的新GameActivity上调用run方法。setContentView方法从未被调用过,因此它没有任何视图。你可能想打电话
handler.postDelayed(this, 5000);而不是创建一个新的活动。
https://stackoverflow.com/questions/21070052
复制相似问题