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

خطا در رفتن به Activity دوم با مقدار خالی

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

سلام..

چرا در صورت مقدار ندادن به edt ها وقتی از Activity اول به Activity دوم میرم خطای فورس کلوز میده؟؟

طبق آموزش بخش 05-01

 public class FirstActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form1);

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) {
String userInput = edtUserInput.getText().toString();
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();
}
});
}
}



public class SecondActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form2);

TextView txtCaption = (TextView) findViewById(R.id.txtCaption);

Bundle extras = getIntent().getExtras();
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");
}

Log.i("LOG", "UserInput: " + userInput + ", UserAge: " + userAge);
txtCaption.setText(userInput + " " + userAge + " YO");
}

Button btnClose = (Button) findViewById(R.id.btnClose);
btnClose.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
SecondActivity.this.finish();
}
});
}
}

نظرات

محمد خوش نظر 12 سال پیش
اکتیویتی دوم رو در اندروید منیفست تعریف کردید؟
کاشی زاده 12 سال پیش
سلام . خوب شما لاگ رو یه نگاه بنداز ببین چی نوشته برای ما هم بنویس
HP70 12 سال پیش
آره،این کدهای آموزش خود استاد هست..
محمد خوش نظر 12 سال پیش
ینی در کدتون خطایی وجود نداره و فقط موقع رفتن از اکتیویتی اول به دوم کرش میکنه؟
HP70 12 سال پیش
نه کدها هیچ خطایی نداره

پاسخ‌ها 3

HP70 12 سال پیش

توی لاگ اولین ارور اینه:

 java.lang.NumberFormatException: unable to parse '' as integer

نظرات

کاشی زاده 12 سال پیش
پروژه رو یه بار کلین کنید ببینید فرقی میکنه!
محمد خوش نظر 12 سال پیش
دقیقا چه موقع ارور میده؟ وقتی روی دکمه کلیک میکنید؟ آی دی دکمه رو درست تعریف کردید؟
HP70 12 سال پیش
کلین کردم درست نشد.طبق ارور بالا مشکل از کد زیره وقتی پاکش میکنم درست میشه مشکل این کد چیه؟ ;( () int userAge = Integer.parseInt(edtUserAge.getText().toString
HP70 12 سال پیش
آره وقتی روی دکمه کلیک میشه خطا میده آی دی هم:btnGoNext بچه ها این سورس کد TestActivities خود استاد هست ولی من Activity اول رو صفحه اصلی قرار دادم اگه دسترسی دارید میتونید چک کنید
کاشی زاده 12 سال پیش
خوب این به خاطر این هست که شما داری ادیت باکس رو خالی پارز به int و این امکان نداره چون مقداری "" به int پارز نمیشه باید براش یه شرط قرار بدی بگی اگر مقدار ادیتباکست مخالف "" بود اون وقت پارزش کنه
Borhani 12 سال پیش
سورس رو بذارین بهتر می توان متوجه شد
JSONObject 12 سال پیش

 int userAge =Integer.parseInt(edtUserAge.getText().toString());

فک کنم اگه این قسمت از کد رو با یه if تعریف کنی درست میشه

یعنی بگی اگر سمت راست مساوی برابر "" کوتیشن خالی شد یه حرکتی بزنه روش مثلا صفرش کنه
در غیر اینصورت بشه محتوای ورودیش

 
int userAge;
if(edtUserAge.getText().toString() == ""){
userAge = 0;
}else{
userAge =Integer.parseInt(edtUserAge.getText().toString());
}

نظرات

HP70 12 سال پیش
باز هم خطا میده..
کاشی زاده 12 سال پیش
خط های قبلی رو کامنت کن و این خط رو بزار جاش String edt = edtAge.getText().toString(); و زیرش یه لاگ بزار ببین مقداری که توش هست وقتی خالیه چیه دقیقا
HP70 12 سال پیش
ممنون درست شد.. کد String userAge = edtUserAge.getText().toString(); رو بجای int userAge =Integer.parseInt(edtUserAge.getText().toString()); گذاشتم.
HP70 12 سال پیش
الان چون userAge استرینگ هست عدد قبول نمیکنه و مقدار پیش فرض یعنی صفر نمایش داده میشه..
JSONObject 12 سال پیش
: اینو باید از قسمت xml مقدار input type رو براش Number بذاری
HP70 12 سال پیش
درسته..توی Activity دوم هم باید int رو به String تغییر میدادم که حالا درست شد.. ببخشید دیگه من تازه کارم!
امید 11 سال پیش

دوستان اگه نخوایم userAge  رو به استرینگ تبدیل کنیم مثلا بخوایم قبل نمایشش اونو در 2 ضرب کنیم باید چیکار کرد؟

 من یه سری کارای مبتدی انجام دادم ولی بازم کرش میکنه!

public class FirstActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form1);

        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) {
                String userInput = edtUserInput.getText().toString();
                String userAge = 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();
            }
        });
    }
}


public class SecondActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form2);

TextView txtCaption = (TextView) findViewById(R.id.txtCaption);

Bundle extras = getIntent().getExtras();
if (extras != null) {
String userInput = "";
String userAge = "";

if (extras.containsKey("USER_INPUT")) {
userInput = extras.getString("USER_INPUT");
}

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

Log.i("LOG", "UserInput: " + userInput + ", UserAge: " + userAge);
int user = 0;
if (userAge != "") {
user = Integer.parseInt(userAge);
}
txtCaption.setText(userInput + " " + (user * 2) + " YO");
}

Button btnClose = (Button) findViewById(R.id.btnClose);
btnClose.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
SecondActivity.this.finish();
}
});
}
}

نظرات

امید 11 سال پیش
دوستان کسی نظری نداره!؟

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