آموزش انتقال داده بین فرگمنت ها در کاتلین

سلام دوستان عزیز در این سری از آموزش برنامه نویسی اندروید به آموزش انتقال داده بین فرگمنت ها در کاتلین انتقال داده بین fragment ها مثل همیشه یک مقدار مشکل است و در صورتی که بخواهید داده را بین فرگمنت ها (fragment) منتقل کنید نیازمند context, interfaces, shared view model, or application-level live data هستیم در ادامه با ما همراه باشید تا با استفاده از api جدید ResultListener این کار را انجام دهیم.
 
خب برویم سراغ کد در نظر میگیریم یک فرگمنت داریم و می خواهیم یک دیالوگ در فرگمنت parent نمایش دهیم مثل زیر

تنها چیز مهمی که در اینجا انجام داده شده است استفاده از متد setTargetFragment که شما هم باید این کار انجام دهید.
و در نهایت داده را به شکل زیر ارسال می کنیم.

کد بالا فقط برای زمانی کار می کند که دو تا فرگمنت در یک Fragment manager باشند پس یعنی بین دو فرگمنت کد بالا به درستی کار نخواهد کرد ولی راه حل این کار استفاده از ResultListener است که در ادامه کد آن را مشاهده می کنید.

کد بالا تا زمانی که داده ای دریافت کند منتظر می ماند.
در فرگمنت دیگر کد زیر را استفاده کتید.

به همین سادگی می توانید بین دو فرگمنت داده را دریافت کنید.
اگر چند فرگمنت داخل هم دیگر بودند می توانید از کد زیر نیز استفاده کنید.

استفاده از این روش خیلی بهتر از استفاده از متغیر Static است.
 
موفق و پیروز باشید.

مطالعه بیشتر