我是開發者(我的第一個項目),請幫助!當我開始從activity_main中選擇一個沒有任何函數的按鈕的情況下,從dkk中選擇一個新的活動時,它會工作,但是當我嘗試在新活動上實際執行某些操作時,例如運行init();它立即停止。我應該改變什麼?開始新活動時Android應用崩潰
進口...
公共類fromdkk擴展AppCompatActivity實現View.OnClickListener {
private Button USD,CAD,EUR,GBP;
private EditText insert;
private TextView result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fromdkk);
init();
}
private void init() {
USD=(Button)findViewById(R.id.usd);
CAD=(Button)findViewById(R.id.cad);
EUR=(Button)findViewById(R.id.eur);
GBP=(Button)findViewById(R.id.gbp);
insert=(EditText)findViewById(R.id.ins);
result=(TextView)findViewById(R.id.res);
USD.setOnClickListener(this);// on click do this which is stated later as a function
EUR.setOnClickListener(this);
CAD.setOnClickListener(this);
GBP.setOnClickListener(this);
}
@Override
public void onClick(View view) {
String num1=insert.getText().toString();//get text from user
float usd1= (float) 0.142;
float eur= (float) 0.134;
float cad= (float) 0.192;
float gbp= (float) 0.114;
switch(view.getId()) {//switch between an cases regarding Ids, execute operation which matches button id
case R.id.usd:
float curr = Float.parseFloat(num1) * Float.parseFloat(String.valueOf(usd1));
result.setText(String.valueOf(curr) + " $");
break;
case R.id.cad:
float curr2 = Float.parseFloat(num1) * Float.parseFloat(String.valueOf(cad));
result.setText(String.valueOf(curr2) + " $");
break;
case R.id.eur:
float curr3 = Float.parseFloat(num1) * Float.parseFloat(String.valueOf(eur));
result.setText(String.valueOf(curr3)+ " €");
break;
case R.id.gbp:
float curr4 = Float.parseFloat(num1) * Float.parseFloat(String.valueOf(gbp));
result.setText(String.valueOf(curr4) + " £");
break;
應用程序日誌:---------崩潰的開始 E/AndroidRuntime:FATAL EXCEPTION:main 進程:com.example.martin.currencyconverter,PID:2381 java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.martin.currencyconverter/com.example.martin.currencyconverter.fromdkk}:java .lang.NullPointerException:嘗試調用虛擬會議HOD '無效android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)' 上的空對象引用 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
logcat的:11-26 16:28:41.191 2247-2438/com.example.martin.currencyconverter I/OpenGLRenderer:初始化EGL 1.4版 11-26 16:28:41.191 2247-2438/com.example.martin.currencyconverter D/OpenGLRenderer:Swap行爲1 11-26 16:28:41.316 2247-2438/com.example.martin.currencyconverter E/EGL_emulation:tid 2438:eglSurfaceAttrib(1146):錯誤0x3009(EGL_BAD_MATCH) 11-26 16:28:41.316 2247- 2438/com.example.martin.currencyconverter W/OpenGLRenderer:無法在曲面0x9f9fec20上設置EGL_SWAP_BEHAVIOR,錯誤= EGL_BAD_MATCH
請將logcat添加到問題中,並確認您要啓動的活動位於清單中 –
可能重複[什麼是NullPointerException,以及如何修復它?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Henry
它在清單中,錯誤:試圖調用虛擬方法'void android.widget.Button.setOnClickListener(android .view.View $ OnClickListener)'的空對象引用 – quant