خالی بودن EditText
سلام دوستان ! من دارم روی یه پروژه ای کار میکنم ایشالا امروز تموم میشه میدم بازار !
خب یه سوالی داشتم ! توی این نرم افزار من تقریبا 5 تا EditText وجود داره که کاربر باید توش عدد وارد کنه !
خب حالا اگه یدونه از این ادیت تکست ها خالی باشه برنامه کرش میکنه ! باید همه ادیت تکست ها پر باشه و یک عددی درونش باشه و اون عدد به یک Activity دیگه انتقال پیدا کنه و روی اون عدد کاربر یک محاسبه ای بشه و درجایی مثل TextView عدد محاسبه شده نمایش داده بشه !
خب حالا چیکار کنم تا اگه کاربر توی یک ادیت تکست عددی نداده بود برنامه کرش نکنه ! آخه همه ادیت تکست ها اجباری نیست توش باشه و باید بعضی هاش خالی باشه !
ممنون میشم راهنمایی کنید و بگید چیکار کنم !
EditText et = (EditText) findViewById(R.id.edtMessage);
String text = et.getText().toString();
if (text.matches(""))
{
Toast.makeText(getApplicationContext(), "شما هنوز پیامی درج نکردید !!!", Toast.LENGTH_LONG).show();
}
بجای matches می توین بزنی equals یا بنویسی text.lenght()<1 ، یا اصلا توی خاصیت
edt.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
Field2.setText("");
}
});
توی بخش onTextChanged تعیین کنی اگر EditText خالی بود :
edt.setTexr("0");
@Hossein.Kurd بله ! ادیت تکست رو معرفی کردم ! دارم میگم سورس استاد رو کپی کردم ! دقیقا از این خط ایراد میگیره :
int userAge = Integer.parseInt(edtsad.getText().toString());
Intent intent = new Intent(ActivitySecond.this, ActivityBeshmar.class);
intent.putExtra("USER_AGE", userAge);
ActivitySecond.this.startActivity(intent);
ابتدا edtsad.getText().toString() رو بریز توی متغیر String بعد بگو اگر خالی بود اون رو برابر 0 قرار بده و ادامه ماجرا :
String strUserAge = edtsad.getText().toString();
if(strUserAge.equals("")){ strUserAge = "0" } int userAge = Integer.parseInt(strUserAge); Intent intent = new Intent(ActivitySecond.this, ActivityBeshmar.class); intent.putExtra("USER_AGE", userAge); ActivitySecond.this.startActivity(intent);
چقدر تو تنبلی
خب userAge کدومه ؟ همین کدی که دادی یا از جایی دیگه می آد ؟ اینو ابتدا مشخص کن
بعد این رو بزن :
txtCaption.setText ("" + userAge);
دوست عزیز بیشتر دقت کنید !! :| توی کلاس ActivityBeshmar قسمت setContentView() شما form 7 رو انتخاب کردید و بعد توی همین کلاس تکست ویو به اسم txtCaption ساختید ، درحالیکه txtCaption اصلا داخل form7 وجود نداره ! احتمالا منظورتون form4 بوده چون این تکست ویو توش هست .
راستی اگه میخوای بررسی کنی که editText خالی هست یا نه از تابع زیر استفاده کن اگه true برگردوند معلومه که editText خالیه .
privateboolean isEmpty(EditText etText){
return etText.getText().toString().trim().length()==0;
}
دوستان سلام ! یه سوال کوچولوی دیگه دارم گفتم همین جا بپرسم دیگه :
من یک فیلدی دارم به اسم Conter و 4 تا گزینه ! وقتی کاربر روی گزینه اول کلیک کرد Conter باید با عدد 1 جمع بشه و بره توی Activity بعدی !
و اگه کاربر روی گزینه دوم کلیک کرد Conter باید با عدد 2 جمع بشه و بره توی Activity بعدی !
و اگه کاربر روی گزینه سوم کلیک کرد Conter باید با عدد 3 جمع بشه و بره توی Activity بعدی !
و اگه کاربر روی گزینه چهار کلیک کرد Conter باید با عدد 4 جمع بشه و بره توی Activity بعدی !
و حالا به فرض کاربر روی گزینه اول کلیک کرده و 1 ریخه شده توی Conter و یوزر به Activity بعدی رفت :
اگه یوزر تصمیم گرفت برگرده و گزینه رو تصحیح کنه و گزینه دوم رو انتخاب کنه 1 با 2 جمع میشه و میشه 3 ! خب این غلطه !
چیکار کنم الان که دیگه 1 با دو جمع نشه ؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
