我是一名初學者,但我嘗試構建練習,並遇到了這個問題。用戶輸入捐款,按下按鈕和捐款增值。我寫了整個代碼,但是當我點擊按鈕添加到捐款計數,應用程序崩潰。我遵循了我老師的所有教導。我在活動中創建了一個方法,在ui構建器中,我通過點擊屬性中的按鈕並將其設置爲該方法。它應該順利,但是當我點擊按鈕時它會崩潰。這是我將onClick屬性設置爲computeDonation的活動。Android Studio應用在按鈕點擊後不斷崩潰
public void computeDonation(View v){
String addedText = ((EditText)findViewById(R.id.AmountText)).getText().toString();
DonationModel donation = new DonationModel(addedText);
String answer = donation.calcDonation();
((TextView)findViewById(R.id.totalText)).setText(answer);}
這是模型:
String textAdded;
double addedDonation;
public DonationModel(String y){
textAdded = y;
}
public String calcDonation(){
double counter = Double.parseDouble(textAdded);
addedDonation += counter;
Locale locale = new Locale("en", "CA");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
return fmt.format(addedDonation);
}
伊夫甚至試圖未經數字格式只是爲了看它是否發回活動,但事實並非如此。順便說一句我的課我正在使用舊版的android studio。
這是logcat的: 02-15 17:12:28.797 21619-21619/ca.roumani.donations E/AndroidRuntime:致命異常:主 工藝:ca.roumani.donations,PID:21619 的java。 lang.IllegalStateException:無法執行Android的android方法:onClick at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) at android.view.View.performClick(View.java:5197) at android.view.View $ PerformClick.run(View.java:20909) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5942) at java .lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 1399) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 產生的原因:在在java.lang.reflect.Method.invoke(本機方法) java.lang.reflect.InvocationTargetException java.lang.reflect.Method.in voke(Method.java:372) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:5197) at android。 view.View在android.os.Handler.dispatchMessage(Handler.java:95) 上的android.os.Handler.handleCallback(Handler.java:739) (View.java:20909) 。 os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5942) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect .Method.invok e(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 由於:java.lang.NumberFormatException:無效的雙精度:「」 at java.lang.StringToReal.invalidReal(StringToReal.java:63) at java.lang.StringToReal.parseDouble(StringToReal.java:267) at java .lang。Double.parseDouble(Double.java:301) at ca.roumani.donations.DonationModel.calcDonation(DonationModel.java:20) at ca.roumani.donations.DonationActivity.computeDonation(DonationActivity.java:24) at java。 lang.reflect.Method.invoke(Native Method) at android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)java.lang.reflect.Method.invoke(Method.java:372) ) at android.view.View.performClick(View.java:5197) at android.view.View $ PerformClick.run(View.java:20909) at android.os.Handler.handleCallback(Handler.java:739 ) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5942) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java :1399) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
我敢打賭你有'NullPointerException'。發佈你的logcat。 –
我複製並粘貼了全部爲紅色的logcat – Chris
只是一個猜測:嘗試Locale locale = new Locale(「en_CA」) – LSA