بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

جلوگیری از Crash در صورت نامعتبر بودن مقدار EditText

مدیریت گفتگو
نورحسینی 12 سال پیش
آخرین تغییر: 11 سال پیش

سلام
چی کار کنم که در این کد، کرش نکنم. حتی اگر Age خالی بود . اینم کد صفحه اول:


package noorhoseini.mahdi.apps;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class FirstActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nform1);

Button btngonext = (Button) findViewById(R.id.btngonext);
final EditText edtuserinput = (EditText) findViewById(R.id.edtuserinput);
final EditText edtuserage = (EditText) findViewById(R.id.edtuserage);

btngonext.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

final String userinput = edtuserinput.getText().toString();
final int userage = Integer.parseInt(edtuserage.getText().toString());

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("USER_INPUT", userinput);
intent.putExtra("USER_AGE", userage);
FirstActivity.this.startActivity(intent);
FirstActivity.this.finish();

}
});
}
}


با تشکر و احترام .

نظرات

پاسخ‌ها 2

uncocoder 12 سال پیش

راه حل های زیادی داره. ساده ترینش استفاده از try .. catch هست و راه ساده دیگه، این هست که از ابتدا درون این باکس نوشته باشه 0 که یوزر حتی اگر وارد نکرد، معنی عدد رو بده و ورودی این کنترل رو از جنس عددی بذارید که کسی نتونه توش حروف و ... وارد کنه.
همینطور میشه قبل از تبدیل چک کرد که مقدارش "" نباشه و اگر "" بود مقدار 0 به age بدید.

نظرات

نورحسینی 12 سال پیش
سلام ماشاالله به جواب دادن سریع شما. من همین چند لحظه پیش سوال رو نوشتم. اگرچه که بعضی قسمت هاش رو مثل try catch رو نفهمیدم ولی احتمالا در بخش های جلوتر آموزش ها هست . ممنون پاینده باشید.
uncocoder 12 سال پیش
اگر کار رو سرم نریخته باشه و آنلاین هم باشم، سریع جواب می دم. :) بله ، در قسمت های بعد بیشتر یاد خواهید گرفت در مورد try...catch اما چیزی نیست که حتماً برای درست کار کردن پروژه فعلی شما نیاز باشه و می تونید از روشهای دیگه ای که مطرح کردم، استفاده کنید.
rad 11 سال پیش

سلام

شما آخر این آموزش یعنی ارتباط بین Activity ها با بررسی کردن گرفتین که دیگه crash رخ نمیده درصورتی که من وقتی بدون پرکردن فیلد ها دکمه رو زدم crash اتفاق افتاد

if (extras != null) {
            String UserInput = "";
            int userAge = 0;
            if (extras.containsKey("USER_INPUT")) {
                UserInput = extras.getString("USER_INPUT");

            }
            if (extras.containsKey("USER_AGE")) {
                userAge = extras.getInt("USER_AGE");
            }

نظرات

کاشی زاده 11 سال پیش
لاگ کت رو چک کنید و ببنید چه اروری میده بهتون .

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