2012-04-08 105 views
0

我正在練習本書Hello,Android ed3.There有一個示例代碼,用於創建一個動作按鈕以顯示'關於'遊戲。我編輯了所有必需的xml文件。我收到錯誤在下面的代碼中.logcat顯示第10行的空指針異常:about.Button.setClickListener(this)。請幫助。另外我一直無法理解'this'參數。任何hep?按鈕動作-Android應用程序

public class Sudoku extends Activity implements OnClickListener { 
private static final String TAG = "Sudoku"; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     // Set up click listeners for all the button 
     View aboutButton = findViewById(R.id.about_button); 
     aboutButton.setOnClickListener(this); 

    } 

    public void onClick(View v) { 
      switch (v.getId()) { 
      case R.id.about_button: 
      Intent i = new Intent(this, About.class); 
      startActivity(i); 
      break; 
    } 

}}

回答

1

看起來你沒有 「about_button」 在xml文件按鈕。你在xml中爲按鈕命名了嗎?

+0

確保您的main.xml是一個與它或更改按鈕它到正在使用的實際佈局文件。 – L7ColWinters 2012-04-08 07:05:40

+0

做完了所有的代碼仍然不會運行! – Maxsteel 2012-04-08 08:23:54

+0

在這裏發佈您的XML文件..你仍然得到相同的錯誤? – San 2012-04-08 08:27:44

0
public class Sudoku extends Activity implements OnClickListener { 
private static final String TAG = "Sudoku"; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // Set up click listeners for all the button 
    Button aboutButton = (Button) findViewById(R.id.about_button); 
    aboutButton.setOnClickListener(this); 

}

public void onClick(View v) { 
     if(v == aboutButton){ 
     Intent i = new Intent(this, About.class); 
     startActivity(i); 
     break; 
} 

試試這個...只是改變2-3行...

+0

按原樣複製了代碼。仍然顯示相同的錯誤。請在此解釋'this'參數是什麼? – Maxsteel 2012-04-08 08:24:21

+0

謝謝everyone.It工作! :) – Maxsteel 2012-04-08 08:30:53

相關問題