آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خطای Force Close در پروژه ثبت محتوا (علت چیست؟) (حل شد)

Dadparvar  12 سال پیش  12 سال پیش
0 0

سلام و عرض ادب
من یک پروژه ساختم و خواستم وقتی کاربر عبارتی وارد میکنه (از نوع عدد) و دکمه رو میزنه :

  • اگر عدد صفر باشه بنویسه : ورودی صفر هست
  • اگر عدد چیزی غیر از صفر بود : بنویسه عدد فلان است
  • اگر فیلد رو خالی گذاشت و دکمه رو زد بنویسه: لطفا فیلد رو با مقداری پر کنید

دومورد اولش درست کار میکنه اما وقتی خالی بزاره و دکمه رو بزنه ، Force Close میده. کد من از این قراره:

            @Override
            public void onClick(View arg0) {

                int value = Integer.parseInt(edtInput.getText().toString());
                if (edtInput == null) {
                    txtResult.setText("Please Put Some Value");
                } else if (value == 0) {
                    txtResult.setText("Value is: Zero");
                } else {
                    txtResult.setText("Value is: " + value * 2);
                }

                txtResult.setBackgroundColor(Color.parseColor("#00ff00"));
                txtResult.setTextColor(Color.parseColor("#000000"));

            }
        });

ممنون میشم راهنمایی بفرمایید.

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
hosseinAmini  12 سال پیش
0 0

سلام
اینجوری باید بنویسی

 if(value.contains("")){
            txtResult.setText("Please Put Some Value");
        }
0 0
ممنون. پس در آموزشی که استاد فرمودن از null استفاده کنیم برای چی بود؟ یعنی سوالم دقیق اینه که null با contains("") چه فرقی داره؟ چطور میشه در همین کد خودم null رو بکار برد؟ (12 سال پیش)
0 0
همچنین با این تغییر این ارور اومد: Cannot invoke contains(String) on the primitive type int (12 سال پیش)
0 0
تو تبدیل کردم string به int به مشکل برخورده , لازم نیست تبدیل به int کنید , string هم میشه , به جاش به نویس : if ( string = "1" ) .... (12 سال پیش)
0 0
یه = یادم رفت (12 سال پیش)
پاسخ به سوال 
sadeghbarout  12 سال پیش
+1 0

قبل از تبدیل کردن مقدار درون EditText به int باید چک کنی که حتما EditText مقدار داشته باشه:

             @Override
            public void onClick(View v) {

                EditText edtInput = (EditText) findViewById(R.id.editText1);
                if (edtInput.getText().toString().equals("")) {
                    txt.setText("Please Put Some Value");
                } else {
                    int value = Integer.parseInt(edtInput.getText().toString());
                    if (value == 0) {
                        txt.setText("Value is: Zero");
                    } else {
                        txt.setText("Value is: " + value * 2);
                    }
                }
                txt.setBackgroundColor(Color.parseColor("#00ff00"));
                txt.setTextColor(Color.parseColor("#000000"));

            }

اگه دقت کنی میبینی که تبدیل مقدار به int بعد از مطمئن شدن از پر بودن EditText انجام گرفته

0 0
ممنون. دقیق اشاره فرمودید. مشکل برطرف شد (12 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .