Java 从处理程序线程调用FindViewById-NullPointerException
因此,我试图在我的应用程序中实现一个简单的计时器,其中每秒钟递增MM:SS显示Java 从处理程序线程调用FindViewById-NullPointerException,java,android,Java,Android,因此,我试图在我的应用程序中实现一个简单的计时器,其中每秒钟递增MM:SS显示 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_game); handler = new Handler(); Runnable runnable = ne
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);
}
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_游戏);
handler=新的handler();
Runnable Runnable=新游戏活动();
handler.postDelayed(runnable,5000);//在5s后开始递增计时器。
}
@凌驾
公开募捐{
//TODO自动生成的方法存根
TextView timeView=(TextView)findViewById(R.id.textView1);
String time=(String)timeView.getText();
if(TimerUtilities.convertMSToSeconds(time)
当我查看logcat输出时,我在被重写的run方法的findViewById行中得到一个空指针异常
由于从处理程序线程读取/更新UI,因此可能会出现问题。如果是这样的话,有没有其他方法可以让我这样做?正在对您创建的新GameActivity调用run方法。setContentView方法从未被调用,因此它没有任何视图。你可能想打电话
handler.postDelayed(this, 5000);
而不是创建新的活动。这是从GameActivity类重写的run()方法,还是您在活动中实现了Runnable?请澄清是的,我已经在我的活动中实现了Runnable。