بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
علت کرش در این کد چیست؟
با سلام
استاد من طبق آموزش ها پیش رفتم و فقط صفحه سوم رو که به نظر ربطی به اصل برنامه نداره ایجاد نکردم . نتیجتا در صورتیکه اطلاعات اولیه در صفحه اول وارد بشه درست عمل میکنه ولی در صورتیکه اطلاعاتی وارد نشه یا به اصطلاح 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 سال پیش
0
0
من کد شما رو با دقت بررسی کردم، به نظر نمی رسه مشکلی داشته باشه، تمیز و خوانا هم هست. شما دقیقاً کی کرش می کنید؟ بعد از کلیک روی چی؟ و طبق آموزش «عیب یابی» مروری بکنید و سعی کنید دقیقاً خط تولید ایراد و خطا رو پیدا کنید.
من دقیقا زمانیکه روی دکمه btngonext که در صفحه اول است و بدون اینکه هیچ داده ای در کادر های یوزراینپوت و یوزرایج وارد کنم کرش میکنه در حالیکه در بلاک else تعریف کردم که نال و صفر بنویسه.
ضمنا استاد مبحث عیب یابی مال جلسه هشتم است در حالیکه من هنوز جلسه پنجم رو هم تموم نکردم ولی در هر صورت ممنون خواستم علت دقیق کرش رو بگم حسب الامر. باتشکر (12 سال پیش)
خوب مشکل شما از نوشته بالا پیدا شد. مشکل شما در این فرم نیست. در فرم قبل هست. بدون اینکه کاربر ورودی ها رو پر کنه، شما سعی در انتقال داده های فرم می کنید. برای UserInput که یک String هست، خالی بودن کادر مشکلی ایجاد نمی کنه. اما احتمالاً شما تصمیم دارید UserAge را به عدد تبدیل کنید ولی چون محتوای ورودی خالی هست به هیچ عددی تبدیل نمیشه و کرش می کنه.
در خصوص «عیب یابی» متأسفانه نمیشد این مبحث رو عقب تر مطرح کرد. اما مطالعه کردن همین مبحث به صورت جداگانه می تونه کمک بهتون بکنه. (12 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .