首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Handler线程- NullPointerException调用NullPointerException

从Handler线程- NullPointerException调用NullPointerException
EN

Stack Overflow用户
提问于 2014-01-12 01:05:09
回答 1查看 899关注 0票数 0

因此,我试图在我的应用程序中实现一个简单的计时器,其中我每一秒增加MM:SS显示。

代码语言:javascript
复制
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,问题也可能出现。如果是的话,我是否有其他方法可以这样做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-12 01:17:34

正在您创建的新GameActivity上调用run方法。setContentView方法从未被调用过,因此它没有任何视图。你可能想打电话

代码语言:javascript
复制
handler.postDelayed(this, 5000);

而不是创建一个新的活动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21070052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档