我是一個noob,我有使用搜索功能來獲得答案,但我沒有找到任何東西,所以我有我的代碼在Android工作室我的nexus 7作爲一個真正的設備來測試它,但每次我嘗試運行它,在我的Nexus它說,它是直接結束出現一條消息:S
通過點擊號碼添加到TextView的按鈕,基本計算器 這裏是我的代碼:爲什麼我的應用程序總是崩潰?
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
int actuel;
Button btn0 = (Button) findViewById(R.id.btn0);
Button btn1 = (Button) findViewById(R.id.btn1);
Button btn2 = (Button) findViewById(R.id.btn2);
Button btn3 = (Button) findViewById(R.id.btn3);
Button btn4 = (Button) findViewById(R.id.btn4);
Button btn5 = (Button) findViewById(R.id.btn5);
Button btn6 = (Button) findViewById(R.id.btn6);
Button btn7 = (Button) findViewById(R.id.btn7);
Button btn8 = (Button) findViewById(R.id.btn8);
Button btn9 = (Button) findViewById(R.id.btn9);
TextView output = (TextView) findViewById(R.id.textView);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn0.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(0,view);
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(1,view);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(2,view);
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(3,view);
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(4,view);
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(5,view);
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(6,view);
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(7,view);
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(8,view);
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNumbers(9,view);
}
});
}
private final void addNumbers(int num, View view){
actuel = actuel * 10 + num;
output.setText(String.valueOf(actuel));
}
}
粘貼崩潰日誌... – Plato
要進一步解釋柏拉圖的答案......您正在聲明並試圖初始化您的按鈕(在'Activity'的主要部分使用'findViewById(...)'')類。在調用'setContentView(...)'的地方調用'onCreate(...)'之前會發生這種情況。在你設置了內容視圖之前,任何對'findViewById(...)'的調用都會返回null,並且在你第一次嘗試使用你的按鈕時會導致一個'NullPointerException'(和崩潰)。 – Squonk