کرش کردن نرم افزار در حین پردازش مقدار EditText
ببخشید استاد یه سوال دیگه هم برام پیش اومد که هر کاری کردم نتونستم درستش کنم.
من یه برنامه ساختم که سه تا Edit Text داره و 4 تا دکمه که هر کدام از دکمه ها به ترتیب برای عمل جمع , منها , ضرب و تقسیم هستند.
حالا برنامه به این نحو اجرا میشه که کاربر توی دوتا از Edit Text ها عدد مورد نظرش رو وارد میکنه و در Edit Text سوم جواب رو وارد میکنه حالا با زدن هر دکمه (چهار عمل اصلی) اگر جواب درست باشه پیغام "آفرین درست پاسخ دادی" نمایش داده میشه و اگر غلط باشه پیغام "نه غلط پاسخ دادی, دوباره سعی کن" نمایش داده میشه.
مثلا : در یکی از Edit Text ها مقدار 2 و در دیگری 3 را وارد میکند. و اگر در Edit Text سوم مقدار 5 (5= 3+2) را وارد کند و دکمه جمع را بزند پیغام "آفرین درست پاسخ دادی" نمایش داده میشه و اگر عددی غیر از 5 وارد کند پیغام "نه غلط پاسخ دادی, دوباره سعی کن" نمایش داده می شود.
شکر خدا تا اینجا کار همه چی درست پیش میره ولی مشکلم اینجاس که اگر Edit Text ها خالی باشند و روی هر کدام از دکمه ها کلیک کنیم " Unfortunately Calculator3 has Stopped " نمایش داده میشه و از برنامه خارج میشه.برای دکمه ها هم شرط با if مشخص کردم که اگر Edit Text ها خالی نیستند پردازش رو انجام بده ولی باز همون اررور رو میده.
کدهای دکمه جمع رو در زیر قرار میدم که اگر زحمتی نیست راهنماییم کنید. با تشکر
btnPlus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
int plusResult = 0;
int plusfinalAnswer = 0;
String plusAnswer = edtAnswer.getText().toString();
String PlusVal1 = edtFirstNumber.getText().toString();
String PlusVal2 = edtSeccondNumber.getText().toString();
if (PlusVal1 != null && PlusVal2 != null) {
int plusOne = Integer.parseInt(PlusVal1);
int plusTwo = Integer.parseInt(PlusVal2);
plusfinalAnswer = Integer.parseInt(plusAnswer);
plusResult = plus(plusOne, plusTwo);
if (plusResult == plusfinalAnswer) {
Toast.makeText(MyCalcute3Activity.this, "آفرین درست پاسخ دادی", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MyCalcute3Activity.this, "نه غلط پاسخ دادی, دوباره سعی کن", Toast.LENGTH_LONG).show();
}
}
}
});
ممکن هست که String لزوماً null نباشد اما نمایانگر یک عدد هم نباشد مثل یک String خالی یعنی "" یا مثلاً "A" در این شرایط Integer.parseInt با خطا و کرش کار را خاتمه می دهد. در آموزشها طریقه استفاده از try...catch برای جلوگیری از این خطاها آموزش داده شده.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .