2012-08-15 128 views
0

我有兩個活動。在我的主要活動我創建的意圖,開始另一種:Android:OnClickListener拋出NullPointerException

Intent intent = new Intent(context, Settings.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

,這裏是第二個活動應該啓動代碼:

public class Settings extends Activity { 

    Button settingsBack; 
    //Some other layout resources 
    final Context context = this; //Creating reference to this Activity Context 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.help); 

     //References to layout resources 
     settingsBack = (Button) findViewById(R.id.settingsBack); 
     //... 
     //----- 

     //Assigning listeners to Buttons 
     settingsBack.setOnClickListener(listenerBack); 
     //----- 
    } 

    //Button listeners definitions 
    final OnClickListener listenerBack = new OnClickListener() { 

     public void onClick(View v) { 
      finish(); 
     } 

    };  
    //----- 

} 

但是,當本次活動應該開始,我在該行分配了一個NullPointerException,在這裏我將Listener分配給Button。我試圖清理項目,以防R文件沒有正確生成,但它沒有解決問題。第二項活動是在manifest文件中聲明:

<activity android:name=".Settings" android:label="@string/app_name"></activity> 

我敢肯定,它只是一個簡單的小問題的地方,但我不能找到它:(感謝您的幫助

+2

也發佈了help.xml – nandeesh 2012-08-15 12:54:08

+2

如果你的layout.help確實包含settingsBack按鈕,並且當你調試你的應用程序,並且你看到settingsBack(Button)爲null,那麼我看不到任何其他原因,導致R文件的某些問題或類似的東西。也許嘗試關閉/刷新/清理項目和/或關閉Eclipse。 – Warlock 2012-08-15 12:56:19

+0

nandeesh,你剛剛解決了它:)我從另一個已經完成的活動派生出這個代碼,我總忘了改變內容視圖:)我現在覺得很愚蠢,謝謝! – 2012-08-15 13:01:30

回答

0

我做這一切的時候,我! onCreate方法複製一個活動到一個新的活動,但忘了更改setContentView XML文件。

的活動被稱爲設置我猜測,但XML被稱爲幫助你可能會做同樣的!?

+0

這就是發生在我身上的事情,當nandeesh向我詢問help.xml代碼時,我意識到了這一點:) – 2012-08-15 13:05:57

+1

那麼,忘記在清單中添加新的活動是我在調試時最大的麻煩! – melodiouscode 2012-08-15 13:21:39

+0

你爲什麼複製onCreate方法?在eclipse中你可以編寫「onc」,然後按ctrl +空格鍵,然後輸入wupti和create方法生成。 :) – 2012-08-16 07:46:34