我是新來的編碼和熱情學習的Android Studio,下面的視頻做編碼。 我已經讀過那篇文章 - 什麼是NullPointerException,並且在更多的相關文章中理解了這個概念,但是我無法修復,雖然我知道錯誤在哪個代碼上,但如果不是這樣,那麼我的問題是什麼。 我按下計算器應用程序的任意按鈕後,面臨着這樣的NullPointerException異常:我該如何解決這個NullPointError?
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.blogeomics.calcee.MainActivity.numberPressed(MainActivity.java:167)
at com.blogeomics.calcee.MainActivity$7.onClick(MainActivity.java:97)
代碼如下:
package com.blogeomics.calcee;
import android.app.Activity;
import android.media.Image;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import static android.R.string.no;
import static android.os.Build.VERSION_CODES.O;
public class MainActivity extends AppCompatActivity {
String runningNumber = "0";
TextView resultsView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button oneBtn = (Button) findViewById(R.id.button1);
Button twoBtn = (Button) findViewById(R.id.button2);
Button threeBtn = (Button) findViewById(R.id.button3);
Button fourBtn = (Button) findViewById(R.id.button4);
Button fiveBtn = (Button) findViewById(R.id.button5);
Button sixBtn = (Button) findViewById(R.id.button6);
Button sevenBtn = (Button) findViewById(R.id.button7);
Button eightBtn = (Button) findViewById(R.id.button8);
final Button nineBtn = (Button) findViewById(R.id.button9);
Button zeroBtn = (Button) findViewById(R.id.button0);
ImageButton calcBtn = (ImageButton) findViewById(R.id.buttonEqual);
ImageButton divideBtn = (ImageButton) findViewById(R.id.buttonDivide);
ImageButton multiplyBtn = (ImageButton) findViewById(R.id.buttonMultiply);
ImageButton addBtn = (ImageButton) findViewById(R.id.buttonAdd);
ImageButton subtractBtn = (ImageButton) findViewById(R.id.buttonSubtract);
Button clearBtn = (Button) findViewById(R.id.buttonClear);
TextView resultsView = (TextView) findViewById(R.id.result_view);
resultsView.setText("");
oneBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(1);
}
});
twoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(2);
}
});
threeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(3);
}
});
fourBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(4);
}
});
fiveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(5);
}
});
sixBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(6);
}
});
sevenBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(7);
}
});
eightBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(8);
}
});
nineBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(9);
}
});
zeroBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
numberPressed(0);
}
});
calcBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
subtractBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
multiplyBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
divideBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
clearBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
void numberPressed(int number) {
runningNumber = runningNumber + String.valueOf(number);
resultsView.setText(runningNumber);
}
}
我已經經歷了很多關於這個錯誤的帖子,但仍無法去弄清楚如何解決我的問題,我知道它應該是一件小事,但我無法理解,請幫助。
佈局後的XML – Romadro
變化'的TextView resultsView =(TextView的)findViewById(R.id。 result_view);''resultsView =(TextView)findViewById(R.id.result_view);'in'onCreate' –
167行是什麼? – meeeee