مشکل با تابع onTextChanged ادیت تکست
سلام خدمت اساتید و دوستان عزیز...یه مشکلی داشتم دررابطه با تابع onTextChanged ادیت تکست... این تابع به خوبی کار میکنه فقط وقتی تا ته پاک میکنم و دیت تکست خالی میشه برنامه کرش میکنه و بسته میشه
کد هام به این شکله:
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
tedad = Integer.parseInt(etTedad.getText().toString());
if (etTedad.getText().toString().equals("")){
etTedad.setHint("تعداد ورق را وارد کنید");
}
if (tedad % 500 !=0){
int band = tedad / 500;
int varaghEzafe = tedad % 500;
tv2.setText(band + "بند و"+ varaghEzafe + "ورق");
}else {
int band = tedad / 500;
tv2.setText(band + "بند");
}
}
این هم ارور اندروید استادیو:
08-05 11:49:54.106 30643-30643/ir.soroosh.kaghaz E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:359)
at java.lang.Integer.parseInt(Integer.java:332)
at ir.soroosh.kaghaz.MainActivity$2.onTextChanged(MainActivity.java:65)
at android.widget.TextView.sendOnTextChanged(TextView.java:7231)
at android.widget.TextView.handleTextChanged(TextView.java:7290)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:8880)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:962)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:496)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:212)
at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:30)
at android.view.inputmethod.BaseInputConnection.deleteSurroundingText(BaseInputConnection.java:242)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:382)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)


"اول براش شرط بذار که اگه خالی بود ، فلان کار رو بکنه و بپره بیرون"
این رو بصورت کد توضیح میدید؟

سلام
بستگی داره که دقیقا میخوای چکار کنی . ولی تقریبا به این شکله :
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (charSequence.length()==0){
etTedad.setHint("تعداد ورق را وارد کنید");
// بقیه دستوراتی که لازم داری
return;
}
tedad = Integer.parseInt(etTedad.getText().toString());
if (tedad % 500 !=0){
int band = tedad / 500;
int varaghEzafe = tedad % 500;
tv2.setText(band + "بند و"+ varaghEzafe + "ورق");
}else {
int band = tedad / 500;
tv2.setText(band + "بند");
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .