崩溃

2012-02-03 161 views
0

evertime我用这个代码,它说那里有一个空指针异常崩溃

public boolean onTouchEvent(MotionEvent event) 
{ 
    if(event.getAction()==MotionEvent.ACTION_UP) 
    { 
     gotoWeb interwebs=new gotoWeb(); 
     interwebs.go(); 
    } 
return true; 
} 

public class gotoWeb extends Activity 
{ 
    public void go() 
    { 
    Intent ins = new Intent(Intent.ACTION_VIEW); 
    ins.setData(Uri.parse("http://www.google.com")); 
    startActivity(ins); 
    } 
} 

我似乎无法找出什么我还没有转让应即时通讯几乎与我的项目完成,这似乎持股待我回

+1

1.请附上错误信息| 2.你有没有设置INTERNET权限? – ariefbayu 2012-02-03 02:46:48

回答

3

你不能只是延伸Activity,构建它,然后使用它。请阅读activity lifecycle以了解如何正确创建一个。你得到一个NPE的原因是你的活动 - 来自上下文 - 正在调用startActivity(),它是一个Context中的Context方法,由于你没有使用适当的机制来创建,所以它还没有被初始化你的活动。

这就是说,我不确定你为什么要构建一个Activity来启动另一个启动Web浏览器的活动。为什么不创建Intent并从onTouchEvent()中启动它?我认为触摸处理程序存在于一个活动或一个与上下文可用的东西。

+0

最后两个字让我头上的灯泡熄灭,谢谢。 – Syzix 2012-02-03 08:21:07

+0

太棒了!祝你好运。 – 2012-02-03 13:46:46

0

这实在有点令人困惑。为什么你有一个扩展Activity但不覆盖像onCreate()和onCreateView()这样的内置方法的类?一个活动是一个用户界面的容器,以及应该与该单一屏幕一起进行的所有行为。这包括导航,需要点击处理程序的按钮等。但是,您的类不会覆盖返回虚拟UI层次结构的最基本方法。

由于您从来没有真正使用startActivity启动GoToWeb的实例,因此没有任何回调会被调用,这意味着什么都不会被绘制到屏幕上。