PDA

View Full Version : بروز اشکال در onActivityResult



Ghadiri_S
چهارشنبه 19 مهر 1391, 10:35 صبح
با سلام خدمت دوستان

من با یک مشکل عجیب در انتقال یک رشته از یک اکتیویتی به اکتیویتی دیگه مواجه شدم که اصلا سر در نمیارم.

من تو پروژه ام 2 تا اکتیویتی درست کردم که اکتیویتی دوم با کد زیز اجرا میشه


startActivityForResult(f,1);


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



Intent f = new Intent();
f.putExtra("myString", "Hello");
setResult(RESULT_OK, f);

this.finish();


بعد از این کار تو اکتیویتی اول که این اکتیویتی رو اجرا کرده بود تابع onActivityResult رو بصورت زیر اجرا کردم تا مقدار رشته ای رو که داخل myString گذاشتم رو بخونه و نمایش بده.



protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode==RESULT_OK && requestCode==1){
if (data.hasExtra("myString")){
Toast.makeText(getApplicationContext(), data.getExtras().getString("myString"), Toast.LENGTH_LONG).show();

}
}
}


اما متاسفانه تو اجرا برنامه خطا میده و اجرا نمیشه! من سعی کردم تریس کنم و دیدم اشکا رو تو تابع onActivityResult دارم و اون هم دقیقا زمانی که data.getExtras().getString("myString") اجرا میشه

دوستان مشکل من کجاست!؟

با تشکر از همه دوستان

Ghadiri_S
جمعه 21 مهر 1391, 10:54 صبح
ظاهرا من مرتکب اشتباه شده بودم و کد زیر رو از تابع onActivityResult حذف کرده بودم!!!


super.onActivityResult(requestCode, resultCode, data);


تابع رو به شکل زیر نوشتم مشکل حل شد



protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode==RESULT_OK && requestCode==1){
if (data.hasExtra("myString")){
Toast.makeText(getApplicationContext(), data.getExtras().getString("myString"), Toast.LENGTH_LONG).show();

}
}
}


دوستان عبارت super که تو اکثر توابع ایجاد میشه کاربردش چی هست؟
لطفا راهنمایی بفرماید

با تشکر

mahdi1373
سه شنبه 02 آبان 1391, 08:59 صبح
تا اونجایی که من میدونم super به آبجکت والد کلاس مورد نظر اشاره داره، یعنی آبجکتی که اونو ساخته و این کلاس از اون ارث بری داره