Java 从处理程序线程调用FindViewById-NullPointerException

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

因此,我试图在我的应用程序中实现一个简单的计时器,其中每秒钟递增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);            
        }               
    }
创建时受保护的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。