بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
خطای توقف اجباری در ارتباط بین دو اکتیویتی
با سلام
دوستان من مثال فصل 5 رو همانطور که استاد گفت کدنویسی کردم اما باز هم با زدن دکمه برای ارسال اطلاعات از اکتیویتی 1 به اکتیویتی 2 اگر کاربر مقداری وارد نکنه برنامه فورس کلوز میده مشکل کجاست؟
package soltani.mohammadreza.course.app.yek.mordad.navadoshesh;
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.form1);
Button btngoform2 = (Button) findViewById(R.id.btngoform2);
final EditText edtusername = (EditText) findViewById(R.id.edtusername);
final EditText edtuserage = (EditText) findViewById(R.id.edtuserage);
btngoform2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String username = edtusername.getText().toString();
int userage = Integer.parseInt(edtuserage.getText().toString());
Intent click = new Intent(FirstActivity.this, SecondActivity.class);
click.putExtra("USER_NAME", username);
click.putExtra("USER_AGE", userage);
FirstActivity.this.startActivity(click);
FirstActivity.this.finish();
}
});
}
}
package soltani.mohammadreza.course.app.yek.mordad.navadoshesh;
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.TextView;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form2);
TextView txtcaption = (TextView) findViewById(R.id.txtcaption);
Bundle extarclick = getIntent().getExtras();
if (extarclick != null) {
String username = null;
int userage = 0;
if (extarclick.containsKey("USER_NAME")) {
username = extarclick.getString("USER_NAME");
}
if (extarclick.containsKey("USER_AGE")) {
userage = extarclick.getInt("USER_AGE");
}
txtcaption.setText("username is : " + username + "age is : " + userage);
}
Button btnclose = (Button) findViewById(R.id.btnclose);
Button btngoform1 = (Button) findViewById(R.id.btngoform1);
btnclose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SecondActivity.this.finish();
}
});
btngoform1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(SecondActivity.this, FirstActivity.class);
SecondActivity.this.startActivity(intent);
}
});
}
}
اینم کدهای دو اکتیویتی
0
0
اگر تونستی پیغام Force close رو بزار
(9 سال پیش)
0
0
اگر نوع مقدار userage رو از int به string تغییر بدهیم خطا برطرف میشه و در واقع متن خطا میگه نمیشه هیچ چیز یا خالی رو به int نسبت داد اما وقتی استرینگ می کنیم خطا برطرف میشه اما وقتی کاربر عدد وارد میکنه در فرم دوم برای age همان مقدار اولیه یعنی صفر رو میزنه. چجوری برطرف کنم این مشکل؟ (9 سال پیش)
برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال
nero 360
9 سال پیش
0
0
مشکلی از setText از . کاربر اگر مقداری وارد نکنه شما میای null رو setText میکنی و این اشتباهه . کد زیر را بنویس و امتحان کن
if (extarclick != null) {
String username = "";
int userage = 0;
if (extarclick.containsKey("USER_NAME")) {
username = extarclick.getString("USER_NAME");
}
if (extarclick.containsKey("USER_AGE")) {
userage = extarclick.getInt("USER_AGE");
}
txtcaption.setText("username is : " + username + "age is : " + userage);
}
پاسخ به سوال
mester_initialer
9 سال پیش
0
0
درود . استفاده از متد toString بر روی یک null زمانی که کاربر داده ای وارد نمی کند باعث کرش برنامه می شود. برای حل این مشکل ابتدا به کمک یک if از ورودی داده اطمینان حاصل کنید. به این صورت
if(edtusername.getText()!=null){
String username = edtusername.getText().toString();
}
پاسخ به سوال
Muta
9 سال پیش
0
0
سلام
هیچ کدوم از این کارها جواب نداد فکر میکنم مشکل از ورودی userage است.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .