Bird
Raised Fist0
Android Kotlinmobile~20 mins

Passing data between activities in Android Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Passing Data Pro
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What will be displayed after passing data between activities?
Consider two activities: MainActivity sends a string "Hello" to SecondActivity using Intent extras. SecondActivity displays the received string in a TextView. What text will the TextView show?
Android Kotlin
val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("message", "Hello")
startActivity(intent)

// In SecondActivity onCreate:
val message = intent.getStringExtra("message")
textView.text = message
AHello
Bnull
Cmessage
DEmpty TextView
Attempts:
2 left
💡 Hint
Check how the string extra is passed and retrieved using the same key.
📝 Syntax
intermediate
1:30remaining
Which code correctly passes an integer between activities?
You want to send an integer value 42 from MainActivity to DetailActivity. Which option correctly puts the integer into the Intent extras?
Aintent.putExtra("number")
Bintent.putExtra("number", "42")
Cintent.putExtra(42, "number")
Dintent.putExtra("number", 42)
Attempts:
2 left
💡 Hint
Remember putExtra needs a key and a value.
❓ lifecycle
advanced
2:00remaining
What happens if you try to retrieve data from Intent in onCreate after configuration change?
If SecondActivity receives data via Intent extras and you retrieve it in onCreate, what happens when the device rotates causing a configuration change?
AThe Intent extras are lost and data becomes null.
BThe data is still available in Intent extras and can be retrieved again.
CThe activity crashes due to missing Intent data.
DThe data is saved automatically in savedInstanceState.
Attempts:
2 left
💡 Hint
Think about what happens to the Intent during activity recreation.
🔧 Debug
advanced
2:00remaining
Why does retrieving data from Intent extras return null?
You passed a string extra with key "username" from MainActivity but in SecondActivity, intent.getStringExtra("user") returns null. Why?
AThe key used to retrieve data does not match the key used to put data.
BThe Intent extras are cleared automatically after startActivity.
CThe data type must be Parcelable to pass between activities.
DYou must cast the extra to String explicitly.
Attempts:
2 left
💡 Hint
Check the exact key strings used in putExtra and getStringExtra.
🧠 Conceptual
expert
3:00remaining
What is the best way to pass a complex object between activities?
You want to pass a custom data object with multiple fields from one activity to another. Which approach is correct and efficient?
AConvert the object to JSON string and pass it as a string extra.
BStore the object in a static variable and access it from the other activity.
CMake the object implement Parcelable and pass it via Intent extras.
DSerialize the object to a file and pass the file path via Intent.
Attempts:
2 left
💡 Hint
Android recommends a specific interface for passing objects efficiently.

Practice

(1/5)
1. What is the primary method to send data from one activity to another in Android Kotlin?
easy
A. Use an Intent with putExtra() to attach data.
B. Use a global variable to share data.
C. Call the other activity's method directly.
D. Use a database to pass data instantly.

Solution

  1. Step 1: Understand Intent usage

    Intent is the standard way to start a new activity and can carry data with putExtra().
  2. Step 2: Recognize data passing method

    putExtra() attaches key-value pairs to the Intent for the next activity to retrieve.
  3. Final Answer:

    Use an Intent with putExtra() to attach data. -> Option A
  4. Quick Check:

    Intent + putExtra() = Data passing [OK]
Hint: Remember: Intent carries data with putExtra() [OK]
Common Mistakes:
  • Trying to call methods of another activity directly
  • Using global variables which is not recommended
  • Assuming database is needed for simple data passing
2. Which of the following is the correct syntax to add a String extra named "username" to an Intent in Kotlin?
easy
A. intent.setExtra("username", username)
B. intent.addExtra("username" to username)
C. intent.putExtra("username", username)
D. intent.putData("username", username)

Solution

  1. Step 1: Recall Intent method for extras

    putExtra() is the correct method to add data to an Intent.
  2. Step 2: Check syntax correctness

    putExtra() takes a key and a value as parameters, matching intent.putExtra("username", username).
  3. Final Answer:

    intent.putExtra("username", username) -> Option C
  4. Quick Check:

    putExtra() syntax correct = intent.putExtra("username", username) [OK]
Hint: Use putExtra(key, value) to add data to Intent [OK]
Common Mistakes:
  • Using non-existent methods like addExtra or setExtra
  • Confusing putExtra with putData
  • Missing quotes around the key string
3. Given this code in Activity A:
val intent = Intent(this, ActivityB::class.java)
intent.putExtra("age", 25)
startActivity(intent)
What code correctly retrieves the "age" integer in Activity B?
medium
A. val age = intent.getIntExtra("age", 0)
B. val age = intent.getStringExtra("age")
C. val age = intent.getExtra("age") as Int
D. val age = intent.getInt("age")

Solution

  1. Step 1: Identify the data type sent

    The value sent is an integer 25, so we must retrieve it as an Int.
  2. Step 2: Use correct retrieval method

    getIntExtra() retrieves an Int extra with a default fallback value.
  3. Final Answer:

    val age = intent.getIntExtra("age", 0) -> Option A
  4. Quick Check:

    Integer extra retrieval = getIntExtra() [OK]
Hint: Use get<Type>Extra(key, default) matching sent data type [OK]
Common Mistakes:
  • Using getStringExtra() for an integer value
  • Trying to cast getExtra() without safe methods
  • Using non-existent getInt() method
4. What is wrong with this code snippet in Activity B for retrieving a String extra named "email"?
val email = intent.getStringExtra("email")!!
medium
A. getStringExtra() does not exist for Intent.
B. Using !! can cause a crash if "email" extra is missing.
C. The key "email" should be an integer resource ID.
D. Intent extras cannot hold String values.

Solution

  1. Step 1: Understand !! operator risk

    Using !! forces a non-null value and crashes if the extra is missing (null).
  2. Step 2: Recognize safe retrieval practice

    It's safer to check for null or provide a default instead of forcing !!.
  3. Final Answer:

    Using !! can cause a crash if "email" extra is missing. -> Option B
  4. Quick Check:

    Unsafe !! usage risks crash [OK]
Hint: Avoid !! on extras; check for null safely [OK]
Common Mistakes:
  • Assuming extras always exist without null checks
  • Thinking getStringExtra() is invalid
  • Confusing keys with resource IDs
5. You want to pass a list of user IDs (List<Int>) from Activity A to Activity B. Which approach correctly sends and retrieves this list?
hard
A. Store the list in a static variable and access it directly in Activity B
B. Use intent.putExtra("userIds", userIds) and retrieve with getIntExtra("userIds", 0)
C. Serialize the list to JSON string and send with putExtra("userIds", jsonString), then parse in Activity B
D. Use intent.putIntegerArrayListExtra("userIds", ArrayList(userIds)) and retrieve with getIntegerArrayListExtra("userIds")

Solution

  1. Step 1: Identify correct method for List<Int>

    Intent supports ArrayList<Int> via putIntegerArrayListExtra() and getIntegerArrayListExtra().
  2. Step 2: Confirm retrieval matches sending method

    Using these methods ensures type safety and proper data transfer.
  3. Final Answer:

    Use intent.putIntegerArrayListExtra("userIds", ArrayList(userIds)) and retrieve with getIntegerArrayListExtra("userIds") -> Option D
  4. Quick Check:

    Use put/getIntegerArrayListExtra for List<Int> [OK]
Hint: Use put/getIntegerArrayListExtra for List<Int> [OK]
Common Mistakes:
  • Trying to send List<Int> directly with putExtra()
  • Using getIntExtra() for a list
  • Using static variables which breaks encapsulation
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard