آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

HP70  11 سال پیش  11 سال پیش
0 0

سلام..

چرا در صورت مقدار ندادن به 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();
}
});
}
}
0 0
اکتیویتی دوم رو در اندروید منیفست تعریف کردید؟ (11 سال پیش)
0 0
سلام . خوب شما لاگ رو یه نگاه بنداز ببین چی نوشته برای ما هم بنویس (11 سال پیش)
+1 0
آره،این کدهای آموزش خود استاد هست.. (11 سال پیش)
0 0
ینی در کدتون خطایی وجود نداره و فقط موقع رفتن از اکتیویتی اول به دوم کرش میکنه؟ (11 سال پیش)
0 0
نه کدها هیچ خطایی نداره (11 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
HP70  11 سال پیش
0 0

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

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

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

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

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

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

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

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

دوستان اگه نخوایم 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();
}
});
}
}
0 0
دوستان کسی نظری نداره!؟ (11 سال پیش)

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