2011-10-25 51 views

回答

2

問題存在的位置:

View splashscreen = (View) findViewById(R.layout.splash); 
splashscreen.setOnClickListener(this); 

你得到一個例外,因爲splashscreen爲空,並在一個空指針調用setOnClickListener()是不允許的。指針爲null的原因是因爲您需要使用正確的ID從XML獲取對視圖的引用。您的splash.xml位於res/layout中的文件正在作爲活動的內容視圖加載,但您應具有與該特定視圖關聯的適當的R.id值。

splash.xml中,爲此目的聲明的視圖在其XML聲明(我挑選了「某物」空氣中,該標識符可以是任何你想要的)時應該具有android:id="@+id/something"屬性。然後,您可以撥打:

//Hint: You don't have to cast the result if the pointer is a plain vanilla View 
View splashscreen = findViewById(R.id.something); 
splashscreen.setOnClickListener(this); 

然後你會得到的觀點和你的一套方法不會失敗的有效參考。

HTH

0

是,Devunwired是正確的。您必須將資源ID賦予特定視圖。而不是你要給佈局文件名稱的引用作爲「splash.xml」。

也嘗試使Id名稱與佈局文件名稱不同。它不是和錯誤,但有時發生,使得可能引發問題理解並給予資源id不同的參考。

謝謝。

0

而不是使用Thread的,你可以嘗試Handler

Handler handler = new Handler(); 

handler.post(new Runnable(){ 
    public void run(){ 
     //TODO 
    } 
}); 

順便說一句,張貼多個異常堆棧跟蹤會更有幫助。