崩潰

2012-02-03 173 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的實例,因此沒有任何回調會被調用,這意味着什麼都不會被繪製到屏幕上。