Tamia  Walter

Tamia Walter


A New Way to Pass Data Between Fragments

Ever since Android Architecture components came to light, Android development has become much simpler and more efficient. On the other hand, concepts like single source of truth and single activity brought a massive transformation.

With such high-quality development ideas, developers tend to move from traditional activities to effective fragments. This puts many developers in a tricky position(myself included in some cases) regarding data communication between fragments.


Passing data from one fragment to another without any references (context, interfaces, shared view model, or application-level live data) seems almost impossible. But if you look a bit deeper, you’ll find a solution: targetFragment.

targetFragment provides a way to communicate with the fragments in the back stack. There is no need for any reference to the destination in the source. In simple terms, targetFragment is a way to implement onActivityResult’s functionality in fragments.

How it works

Let’s call showOptionsDialog() in the parent fragment, which shows an OptionsDialogFragment with a list of options. The only new thing we do here is to set the target fragment with a request code:

private fun showOptionsDialog() {
	        val optionsDialogInstance = OptionsDialogFragment()
	        optionsDialogInstance.setTargetFragment(this, 1)
	        optionsDialogInstance.show(childFragmentManager, optionsDialogInstance.tag)

Then we need to implement onActivityResult in the fragment where we need to receive the data. After that, the only thing left is to pass the data from the source fragment. Have a look:

fun onExit(selectionValue: String){
	        val intent = Intent()
	        targetFragment?.onActivityResult(targetRequestCode, Activity.RESULT_OK, intent)

Well, this is nice. We can pass data to a fragment without any reference to it. But the problem is targetFragment’s functionality only works when both the source and destination fragments are on the same fragment manager. If a fragment is inflated on the childfragmentmanager, then targetFragmentwon’t work.


After nearly a decade, the Android team started focusing on this issue. With the release of [Fragment 1.3.0-alpha04](https://developer.android.com/jetpack/androidx/releases/fragment#1.3.0-alpha04), each [FragmentManager](https://developer.android.com/reference/androidx/fragment/app/FragmentManager) now implements [FragmentResultOwner](https://developer.android.com/reference/androidx/fragment/app/FragmentResultOwner). This means that a FragmentManager can act as a central store for fragment results.

This change allows individual fragments to communicate with each other by setting fragment results and listening for those results without requiring fragments to have direct references of each other. Unlike targetFragment, it works across fragment managers.

How it works

First, let’s see how to pass data at the FragmentManagerlevel and then between parent and child FragmentManagers. To pass data to the destination fragment from the source fragment, we have to add a listener with a specific key. Only the bundle that was posted by any other fragments with this key will be invoked here. Have a look:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
	    super.onViewCreated(view, savedInstanceState)
	    // Use the Kotlin extension in the fragment-ktx artifact
	    setFragmentResultListener("requestKey") { key, bundle ->
	        val result = bundle.getString("name")
	        // Do something with the result...

Listener in source fragment where we need to retrieve the data

Now, it’s time to pass data from the source fragment, as shown below:

tvSave.setOnClickListener {
	    setResult("requestKey", bundleOf("name" to updatedValue))

Passing data from source fragment using setResult

This is pretty much straightforward and works fine when both fragments are on the same FragmentManagersetResult always delivers the latest data to the destination if you posted multiple times. If the listener is not set at the time of invoking setResult, it’ll store the data and delivery when a listener is assigned. Most importantly, remember that you should only declare a listener with a specific key.

What about communication between child and parent fragments? Well, we do have a solution for that too. To explain it at a high level, child fragments pass data to childfragmentmanager, then it’ll pass the data to parent fragment. The implementation part is similar above. The only difference is that we need to add the listener to the child fragment manager, as shown below:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
	    super.onViewCreated(view, savedInstanceState)
	    // We set the listener on the child fragmentManager
	    childFragmentManager.setResultListener("uniquerequestKey") { key, bundle ->
	        val result = bundle.getString("name")
	        // Do something with the result..

Setting a listener in the child fragment

That’s all. Passing data is the same as above. We need to invoke setResultwith a unique key and data with the bundle.

#programming #mobile #kotlin #java #android

What is GEEK

Buddha Community

A New Way to Pass Data Between Fragments
Siphiwe  Nair

Siphiwe Nair


Your Data Architecture: Simple Best Practices for Your Data Strategy

If you accumulate data on which you base your decision-making as an organization, you should probably think about your data architecture and possible best practices.

If you accumulate data on which you base your decision-making as an organization, you most probably need to think about your data architecture and consider possible best practices. Gaining a competitive edge, remaining customer-centric to the greatest extent possible, and streamlining processes to get on-the-button outcomes can all be traced back to an organization’s capacity to build a future-ready data architecture.

In what follows, we offer a short overview of the overarching capabilities of data architecture. These include user-centricity, elasticity, robustness, and the capacity to ensure the seamless flow of data at all times. Added to these are automation enablement, plus security and data governance considerations. These points from our checklist for what we perceive to be an anticipatory analytics ecosystem.

#big data #data science #big data analytics #data analysis #data architecture #data transformation #data platform #data strategy #cloud data platform #data acquisition

Gerhard  Brink

Gerhard Brink


Getting Started With Data Lakes

Frameworks for Efficient Enterprise Analytics

The opportunities big data offers also come with very real challenges that many organizations are facing today. Often, it’s finding the most cost-effective, scalable way to store and process boundless volumes of data in multiple formats that come from a growing number of sources. Then organizations need the analytical capabilities and flexibility to turn this data into insights that can meet their specific business objectives.

This Refcard dives into how a data lake helps tackle these challenges at both ends — from its enhanced architecture that’s designed for efficient data ingestion, storage, and management to its advanced analytics functionality and performance flexibility. You’ll also explore key benefits and common use cases.


As technology continues to evolve with new data sources, such as IoT sensors and social media churning out large volumes of data, there has never been a better time to discuss the possibilities and challenges of managing such data for varying analytical insights. In this Refcard, we dig deep into how data lakes solve the problem of storing and processing enormous amounts of data. While doing so, we also explore the benefits of data lakes, their use cases, and how they differ from data warehouses (DWHs).

This is a preview of the Getting Started With Data Lakes Refcard. To read the entire Refcard, please download the PDF from the link above.

#big data #data analytics #data analysis #business analytics #data warehouse #data storage #data lake #data lake architecture #data lake governance #data lake management

Cyrus  Kreiger

Cyrus Kreiger


How Has COVID-19 Impacted Data Science?

The COVID-19 pandemic disrupted supply chains and brought economies around the world to a standstill. In turn, businesses need access to accurate, timely data more than ever before. As a result, the demand for data analytics is skyrocketing as businesses try to navigate an uncertain future. However, the sudden surge in demand comes with its own set of challenges.

Here is how the COVID-19 pandemic is affecting the data industry and how enterprises can prepare for the data challenges to come in 2021 and beyond.

#big data #data #data analysis #data security #data integration #etl #data warehouse #data breach #elt

Macey  Kling

Macey Kling


Applications Of Data Science On 3D Imagery Data

CVDC 2020, the Computer Vision conference of the year, is scheduled for 13th and 14th of August to bring together the leading experts on Computer Vision from around the world. Organised by the Association of Data Scientists (ADaSCi), the premier global professional body of data science and machine learning professionals, it is a first-of-its-kind virtual conference on Computer Vision.

The second day of the conference started with quite an informative talk on the current pandemic situation. Speaking of talks, the second session “Application of Data Science Algorithms on 3D Imagery Data” was presented by Ramana M, who is the Principal Data Scientist in Analytics at Cyient Ltd.

Ramana talked about one of the most important assets of organisations, data and how the digital world is moving from using 2D data to 3D data for highly accurate information along with realistic user experiences.

The agenda of the talk included an introduction to 3D data, its applications and case studies, 3D data alignment, 3D data for object detection and two general case studies, which are-

  • Industrial metrology for quality assurance.
  • 3d object detection and its volumetric analysis.

This talk discussed the recent advances in 3D data processing, feature extraction methods, object type detection, object segmentation, and object measurements in different body cross-sections. It also covered the 3D imagery concepts, the various algorithms for faster data processing on the GPU environment, and the application of deep learning techniques for object detection and segmentation.

#developers corner #3d data #3d data alignment #applications of data science on 3d imagery data #computer vision #cvdc 2020 #deep learning techniques for 3d data #mesh data #point cloud data #uav data

Uriah  Dietrich

Uriah Dietrich


What Is ETLT? Merging the Best of ETL and ELT Into a Single ETLT Data Integration Strategy

Data integration solutions typically advocate that one approach – either ETL or ELT – is better than the other. In reality, both ETL (extract, transform, load) and ELT (extract, load, transform) serve indispensable roles in the data integration space:

  • ETL is valuable when it comes to data quality, data security, and data compliance. It can also save money on data warehousing costs. However, ETL is slow when ingesting unstructured data, and it can lack flexibility.
  • ELT is fast when ingesting large amounts of raw, unstructured data. It also brings flexibility to your data integration and data analytics strategies. However, ELT sacrifices data quality, security, and compliance in many cases.

Because ETL and ELT present different strengths and weaknesses, many organizations are using a hybrid “ETLT” approach to get the best of both worlds. In this guide, we’ll help you understand the “why, what, and how” of ETLT, so you can determine if it’s right for your use-case.

#data science #data #data security #data integration #etl #data warehouse #data breach #elt #bid data