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

علت کرش در این کد چیست؟

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

با سلام
استاد من طبق آموزش ها پیش رفتم و فقط صفحه سوم رو که به نظر ربطی به اصل برنامه نداره ایجاد نکردم . نتیجتا در صورتیکه اطلاعات اولیه در صفحه اول وارد بشه درست عمل میکنه ولی در صورتیکه اطلاعاتی وارد نشه یا به اصطلاح userinput = null و userage = 0 باید قلمداد بشه طبق تعریفمون و من حتی یک بلاک else براش تعریف کردم ولی باز هم کرش میکنه ! علت چیه؟ ممنون.


package noorhoseini.mahdi.apps;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class SecondActivity extends Activity {

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

TextView txtcaption = (TextView) findViewById(R.id.txtcaption);
Button btnback = (Button) findViewById(R.id.btnback);
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");
}
txtcaption.setText("UserInput is :" + userinput + " and UserAge is:" + userage);
Log.i("log", "userinput is" + userinput + " and userage is :" + userage);
btnback.setText("UserInput is :" + userinput + " and UserAge is:" + userage);
} else {
txtcaption.setText("UserInput is null" + " and UserAge is: 0");
Log.i("log", "userinput is null" + " and userage is : 0");
btnback.setText("UserInput is null " + " and UserAge is: 0");
}

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

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SecondActivity.this.finish();
}
});
btnback.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(SecondActivity.this, FirstActivity.class);
SecondActivity.this.startActivity(intent);
SecondActivity.this.finish();
}
});

}
}

من دقیقا زمانیکه روی دکمه btngonext که در صفحه اول است و بدون اینکه هیچ داده ای در کادر های یوزراینپوت و یوزرایج وارد کنم کرش میکنه در حالیکه در بلاک else تعریف کردم که نال و صفر بنویسه.
ضمنا استاد مبحث عیب یابی مال جلسه هشتم است در حالیکه من هنوز جلسه پنجم رو هم تموم نکردم ولی در هر صورت ممنون خواستم علت دقیق کرش رو بگم حسب الامر. باتشکر

نظرات

پاسخ‌ها 1

uncocoder 12 سال پیش

من کد شما رو با دقت بررسی کردم، به نظر نمی رسه مشکلی داشته باشه، تمیز و خوانا هم هست. شما دقیقاً کی کرش می کنید؟ بعد از کلیک روی چی؟ و طبق آموزش «عیب یابی» مروری بکنید و سعی کنید دقیقاً خط تولید ایراد و خطا رو پیدا کنید.

نظرات

نورحسینی 12 سال پیش
من دقیقا زمانیکه روی دکمه btngonext که در صفحه اول است و بدون اینکه هیچ داده ای در کادر های یوزراینپوت و یوزرایج وارد کنم کرش میکنه در حالیکه در بلاک else تعریف کردم که نال و صفر بنویسه. ضمنا استاد مبحث عیب یابی مال جلسه هشتم است در حالیکه من هنوز جلسه پنجم رو هم تموم نکردم ولی در هر صورت ممنون خواستم علت دقیق کرش رو بگم حسب الامر. باتشکر
uncocoder 12 سال پیش
خوب مشکل شما از نوشته بالا پیدا شد. مشکل شما در این فرم نیست. در فرم قبل هست. بدون اینکه کاربر ورودی ها رو پر کنه، شما سعی در انتقال داده های فرم می کنید. برای UserInput که یک String هست، خالی بودن کادر مشکلی ایجاد نمی کنه. اما احتمالاً شما تصمیم دارید UserAge را به عدد تبدیل کنید ولی چون محتوای ورودی خالی هست به هیچ عددی تبدیل نمیشه و کرش می کنه. در خصوص «عیب یابی» متأسفانه نمیشد این مبحث رو عقب تر مطرح کرد. اما مطالعه کردن همین مبحث به صورت جداگانه می تونه کمک بهتون بکنه.

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