آموزش ارسال داده از اکتیویتی به فرگمنت در اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ارسال داده از اکتیویتی به فرگمنت در اندروید می پردازیم فرگمنت ها و اکتیویتی ها مهمترین بخش ها در برنامه نویسی هستند توصیه می کنم این مبحث را به خوبی یاد بگیرید در این آموزش خواهید دید به سادگی داده ها را از اکتیویتی به فرگمنت ارسال خواهیم کرد با ما همراه باشید.
باید سه کار انجام شود .
اولین کار استفاده از bundle برای قرار دادن داده
دومین کار SetArguments برای پاس دادن دیتا
در بالا fragmentName نام فرگمنتی است که شما ساخته اید.
سومین کار دریافت یا GetArguments
شاید کمی گیج شده باشید در ادامه به یک آموزش کاربردی خواهیم دید.
ما یک فایل به نام activity_main.xml داریم که کد های زیر را در آن قرار دهید.
دو دکمه برای قرار دادن و به دست آوردن داده قرار دارد و یک Frame Layout داریم که برای نمایش fragment مون داریم.
یک فایل به نام fragmentlayout.xml در layout خود درست کرده و کد های زیر را در آن قرار دهید.
حالا باید کد های مربوط به فرگمنت را قرار دهید پس یک فایل به نام DefaultFragment.java ایجاد کرده و کدهای زیر را در آن قرار دهید.
یک فایل دیگر به نام ArgumentFragment.java ایجاد کرده و کد های زیر را در آن قرار دهید.
و در آخر کد مربوط به MainActivity.java همانند زیر می شود.
این آموزش هم به پایان رسید.
موفق و موید باشید.
سلام، ممنون از مطالب آموزشی خوبتون.
یه بار دیگه سوالم رو اینجا مطرح میکنم 🙂
تو این آموزش ما دیتا رو از اکتیویتی میفرستیم به فرگمنتی که تو خود اکتیویتی داریم لود میکنیم….
اما من میخوام مثلا دیتا رو از اکتیویتی 1 بفرستم به فرگمنتی در اکتیویتی2…آیا باید ابتدا دیتا رو از اکتیویتی 1 بفرستم به اکتیویتی 2 و بعد از اکتیویتی 2 بفرستم به فرگمنت؟؟؟ یا اینکه مستقیم میشه دیتا رو از اکتیویتی 1 فرستاد به فرگمنتی در اکتیویتی 2…
ممنون میشم راهنمایی کنید 🙂
سلام اگر کمی به آموزش دقت می کردید می توانستید کد زیر را از آن بیرون بکشید برای انتقال مثل زیر عمل کنید (ساده ترین مثالی که میشه مثال زد)
کد اکتیویتی اول
گد فرگمنت که دیتا گرفته می شود.
موفق باشید.
سلام، ممنون از پاسختون.
با اینکه این شیوه رو امتحان کرده بودم اما کار نکرد برام…. با استفاده از اینتنت اما جواب گرفتم.
در اکتیویتی اول :
Intent intent = new Intent(getActivity(), SecondActivity.class);
intent.putExtra(“message”, data);
startActivity(intent);
و در فرگمنت اکتیویتی دوم :
SecondActivity activity = (SecondActivity) getActivity();
String data= activity.getIntent().getExtras().getString(“message”);
سلام وقتتون بخیر.
من یک اکتیویتی دارم که داخلش یک tabLayut با دو فرگمنت هست . یک سری اطلاعات رو قرار از این اکتویتی به یکی از این فرگمنت ها انتقال بدم و از همین روش bundle استفاده میکنم ولی موقع دریافت اطلاعات در فرگمنت داده ها رو دریافت نمیکنه و این اررور رو میده
java.lang.NullPointerException: Attempt to invoke virtual method ‘java.lang.String
android.os.Bundle.getString(java.lang.String)’ on a null object reference
چه جوری باید این مشکل رفع کنم
https://stackoverflow.com/a/46828366
این روش هم با bundle گفته بود رو انجام دادم ولی بازهم همون اررور رو میده