我有一個事件處理程序的代碼:我必須在哪裏放置事件處理程序?
rbM.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
if (isChecked) {
try {
Double.parseDouble(etAmm.getText().toString());
if (etPerc.getText().toString() != null
&& etPerc.getText().toString() != "") {
etRis.setText(new Double(
Double.parseDouble(etAmm.getText()
.toString()) - percentuale())
.toString());
etPercTot.setText(new Double(percentuale())
.toString() + "%");
}
et30.setText(new Double(Double.parseDouble(etAmm
.getText().toString()) - percentuale(30))
.toString());
etPerc30.setText(new Double(percentuale(30))
.toString() + "%");
et50.setText(new Double(Double.parseDouble(etAmm
.getText().toString()) - percentuale(50))
.toString());
etPerc50.setText(new Double(percentuale(50))
.toString() + "%");
et70.setText(new Double(Double.parseDouble(etAmm
.getText().toString()) - percentuale(70))
.toString());
etPerc70.setText(new Double(percentuale(70))
.toString() + "%");
} catch (Exception ex) {
}
}
}
});
我有它在onCreate方法,但是當我啓動應用程序壓傷。爲什麼??? Eclipse不給我任何錯誤,如果我把一個try catch塊試圖在該方法中的一切,我會得到null作爲例外。我的佈局是正確的,因爲如果我啓動沒有任何由我編輯的Java代碼的應用程序,它會完美地加載到屏幕上。請幫幫我!!!!!
p.s. 我有其他事件處理程序,但這是最短的,我不認爲它可能會從處理程序更改爲處理程序,它總是隻是一個聲明。
這裏的logcat中有人問:
03-20 15:03:13.775: D/AndroidRuntime(262): Shutting down VM 03-20 15:03:13.775: W/dalvikvm(262): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 03-20 15:03:13.895: E/AndroidRuntime(262): FATAL EXCEPTION: main 03-20 15:03:13.895: E/AndroidRuntime(262): java.lang.RuntimeException: Unable to start activity ComponentInfo{ciprianis.genius.percentuali/ciprianis.genius.percentuali.PercentualiActivity}: java.lang.NullPointerException 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.os.Handler.dispatchMessage(Handler.java:99) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.os.Looper.loop(Looper.java:123) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.ActivityThread.main(ActivityThread.java:4627) 03-20 15:03:13.895: E/AndroidRuntime(262): at java.lang.reflect.Method.invokeNative(Native Method) 03-20 15:03:13.895: E/AndroidRuntime(262): at java.lang.reflect.Method.invoke(Method.java:521) 03-20 15:03:13.895: E/AndroidRuntime(262): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 03-20 15:03:13.895: E/AndroidRuntime(262): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 03-20 15:03:13.895: E/AndroidRuntime(262): at dalvik.system.NativeStart.main(Native Method) 03-20 15:03:13.895: E/AndroidRuntime(262): Caused by: java.lang.NullPointerException 03-20 15:03:13.895: E/AndroidRuntime(262): at ciprianis.genius.percentuali.PercentualiActivity.onCreate(PercentualiActivity.java:62) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-20 15:03:13.895: E/AndroidRuntime(262): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 03-20 15:03:13.895: E/AndroidRuntime(262): ... 11 more
添加您的完整logcat – 2012-03-19 18:22:26
您能指出哪些是PercentualiActivity.java中的第62行嗎?這就是你的NPE被拋出的地方。 – Nick 2012-03-20 15:09:11
這是 etAmm.setOnFocusChangeListener(新EditText.OnFocusChangeListener(){它是在onCreate方法的事件處理程序聲明的開頭 – Cippo 2012-03-20 15:15:43