سوال ساده ولی ضروروی در مورد انتقال اسم و عدد از یک اکتیویتی به اکتیویتی دیگه
سلام
من چند تا ادیت تکس دارم که میخوام شخص اطلاعات خودش رو وارد کنه و با زدن دکمه صفحه بعد تمام این اطلاعات در صفحه بعدی باشه
چکاری باید انجام بدم ؟؟ لطفا راهنمایی کنید و اگر نمونه کدی هست لطفا معرفی کنید
دوستان؟؟؟
خب
این کار با putExtra و bundle امکان پذیره .
مثلا شما در اکتویتی اول دو EditText دارید که در اولی اسمتون و در دومی سنتون رو وارد میکنید
و انتظار دارین همین داده ها بصورت یک تکست در اکتیویتی دوم نمایش داده بشن .
خب اول EditText خودتون رو طراحی کنید (در لی اوت )
بعد با توجه به id ، اونا رو در اکتیویتی به جاوا مربوط میکینید (کست میکنید ) مثلا `EditText edt_text = (EditText findViewById (R.id.edt_text))
خب اینجوری تعریف میکنید و button یی که وظیفه ی رفتن به اکتیویتی بعدی هست رو هم تعریف میکنید . و براس یه
setOnClickListenerتعریف میکنید . و در اونجا کد اصلی نوشته میشه ینی همون "putExtra" خب مثلا مثل زیر توجه کنید :
کلا از متد
`()getText().toString` استفاده میکنیم.
btn_goNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String data = edt_data.getText().toString(); // گرفتن مقادیر رشته ای از ادیت تکست که اسم توش نوشته شده
int age = Integer.parseInt(edt_age.getText().toString()); // گرفتن عدد که از جنس int هست
Intent intent = new Intent(MainActivity.this , SecondActivity.class);
intent.putExtra("DATA" , data);
intent.putExtra("AGE" , age);
MainActivity.this.startActivity(intent);
}
});
خب کارمون در اکتویتی اول تمام شد . حالا اکتویتی بعدی رو باز کنید و اگر در لی اوت مربوطش از textView استفاده کردین (برای ست کردن مقادیر از اکتویتی اول) ، پس مثل دکمه یا ادیت تکست یا هر ویووی دیگه تعریف کنید و با کلاس Bundle داده رو میگیرید...
به کد زیر توجه کنید ..
TextView txt_bundle = (TextView) findViewById(R.id.txt_bundle);
Bundle bundle = getIntent().getExtras(); //گرفتن extras
String data = bundle.getString("DATA"); //گرفتن دادی از جنس string
int age = bundle.getInt("AGE"); // گرفتن داداه از جنس int
txt_bundle.setText(data + " , " + age); ست کردن مقادیر در textView برای نمایش
- و تمام انمیدوارم مفید باشه . موفق باشید .
float dX, dY;
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
view.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
break;
default:
return false;
}
return true;
}
سلام ، اگه کاستوم کنترل انداختین داخل صفحه ، کافیه در همون کلاس کاستوم این متد رو override کنین ( بدون نیاز به پارامتر View ) :
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = getX() - event.getRawX();
dY = getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
break;
default:
return false;
}
return true;
}
اما اگه کنترل خود اندروید هست به این صورت استفاده میشه :
txt.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = v.getX() - event.getRawX();
dY = v.getY() - event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
v.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
break;
default:
return false;
}
return true;
}
});
public void click (){
img_send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (!(txt_matn== null)) {
Toast.makeText(getApplicationContext(), "لطفا اول متن را وارد کنید.", Toast.LENGTH_LONG).show();
}
else {
String FileName = SaveScreenshot();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(FileName));
startActivity(Intent.createChooser(intent, getString(R.string.ShareBy)));
}
}
});
این کد رو گذاشتم
ولی همیشه toast را نشون میده
راه انتقال همین نوع اطلاعات از اکتیوتی به یک فرگمنت چیه کسی میدونه ؟؟؟!!! نمیخوام از استارت اکتیوتی استفاده کنم که ارور نال اکسپشن بده !!! با گت آرگومان و ست ارگومان کار میکنم بازم همین ارور نال ابجکت رفرنس میده کسی راه حلی داره ؟!!!!
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .