Bird
Raised Fist0
Android Kotlinmobile~20 mins

First Android app in Android Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
First Android App Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What will this Android app display?
Consider this simple Android app code snippet. What text will appear on the screen when the app runs?
Android Kotlin
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable

class MainActivity : ComponentActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
      Greeting("Android Learner")
    }
  }
}

@Composable
fun Greeting(name: String) {
  Text(text = "Hello, $name!")
}
AHello, World!
BHello, Android Learner!
CGreeting Android Learner
DApp crashed with error
Attempts:
2 left
💡 Hint
Look at the Greeting composable and what string it uses.
❓ lifecycle
intermediate
1:30remaining
When is onCreate() called in an Android app?
In the Android app lifecycle, when does the onCreate() method run?
AWhen the app is closed by the system
BEvery time the app goes to background
CWhen the app is first launched and the activity is created
DWhen the user presses the back button
Attempts:
2 left
💡 Hint
Think about the first step when an activity starts.
📝 Syntax
advanced
2:00remaining
What error does this Kotlin code produce?
Look at this Kotlin code snippet for an Android app. What error will it cause?
Android Kotlin
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text

class MainActivity : ComponentActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
      Text(text = "Welcome")
    }
  }

  fun Text(text: String) {
    println(text)
  }
}
ACompilation error: Conflicting function names for Text
BRuntime error: NullPointerException
CNo error, app displays "Welcome" text
DSyntax error: Missing import for Text
Attempts:
2 left
💡 Hint
Check if defining a function named Text conflicts with Compose's Text composable.
❓ navigation
advanced
2:00remaining
What happens when this navigation code runs?
Given this Android Jetpack Compose navigation snippet, what screen will the user see after clicking the button?
Android Kotlin
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.navigation.NavController

@Composable
fun FirstScreen(navController: NavController) {
  Button(onClick = { navController.navigate("second") }) {
    Text("Go to Second")
  }
}

@Composable
fun SecondScreen() {
  Text("Second Screen")
}
AThe app navigates to SecondScreen and shows "Second Screen" text
BThe app stays on FirstScreen and shows the button
CThe app crashes with navigation error
DThe app shows a blank screen
Attempts:
2 left
💡 Hint
Look at what navController.navigate("second") does.
🧠 Conceptual
expert
2:30remaining
Why use setContent in an Android Compose app?
What is the main purpose of calling setContent in an Android app using Jetpack Compose?
ATo start a background service for the app
BTo set the app's theme colors and styles globally
CTo register event listeners for user input
DTo define the UI content of the activity using composable functions
Attempts:
2 left
💡 Hint
Think about how Compose replaces XML layouts.

Practice

(1/5)
1. What is the role of the MainActivity class in a simple Android app?
easy
A. It controls what the user sees by loading the layout and handling interactions.
B. It stores user data permanently on the device.
C. It manages network connections for the app.
D. It compiles the app code into machine language.

Solution

  1. Step 1: Understand MainActivity's purpose

    MainActivity is the entry point of the app that sets the screen content.
  2. Step 2: Identify its function in UI

    It loads the layout file which defines what the user sees and handles user actions.
  3. Final Answer:

    It controls what the user sees by loading the layout and handling interactions. -> Option A
  4. Quick Check:

    MainActivity controls UI = A [OK]
Hint: MainActivity sets the screen content and user interaction [OK]
Common Mistakes:
  • Confusing MainActivity with data storage classes
  • Thinking MainActivity handles network tasks
  • Believing MainActivity compiles code
2. Which of the following is the correct way to set the content view in MainActivity using Kotlin?
easy
A. setContentView(R.id.activity_main)
B. setContentView(R.layout.activity_main)
C. setContentView(activity_main.xml)
D. setContentView("activity_main")

Solution

  1. Step 1: Recall setContentView syntax

    In Kotlin, setContentView expects a layout resource ID, accessed as R.layout.filename.
  2. Step 2: Match correct resource reference

    R.layout.activity_main correctly points to the layout XML file named activity_main.xml.
  3. Final Answer:

    setContentView(R.layout.activity_main) -> Option B
  4. Quick Check:

    Layout resource ID = R.layout.filename [OK]
Hint: Use R.layout.filename to reference layout files [OK]
Common Mistakes:
  • Using string names instead of resource IDs
  • Confusing layout and id resources
  • Including file extensions in code
3. Given this Kotlin code in MainActivity:
override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.activity_main)
}
What will the user see when the app runs?
medium
A. A blank white screen with no text
B. An error message because onCreate is missing a return type
C. Nothing, the app will crash immediately
D. The layout defined in activity_main.xml displayed on screen

Solution

  1. Step 1: Understand onCreate behavior

    onCreate is called when the app starts and sets the UI with setContentView.
  2. Step 2: Effect of setContentView

    It loads the layout file activity_main.xml, so the user sees that layout on screen.
  3. Final Answer:

    The layout defined in activity_main.xml displayed on screen -> Option D
  4. Quick Check:

    setContentView loads layout = C [OK]
Hint: onCreate sets UI with setContentView(layout) [OK]
Common Mistakes:
  • Thinking onCreate needs a return type
  • Assuming no UI appears without extra code
  • Confusing layout with id resources
4. What is wrong with this MainActivity code snippet?
override fun onCreate(savedInstanceState: Bundle?) {
  setContentView(R.layout.activity_main)
  super.onCreate(savedInstanceState)
}
medium
A. setContentView should be called outside onCreate
B. savedInstanceState should be nullable (Bundle?)
C. super.onCreate(savedInstanceState) must be called before setContentView
D. onCreate must return a value

Solution

  1. Step 1: Check onCreate call order

    super.onCreate must be called first to properly initialize the activity.
  2. Step 2: Identify correct order

    Calling setContentView before super.onCreate causes errors or unexpected behavior.
  3. Final Answer:

    super.onCreate(savedInstanceState) must be called before setContentView -> Option C
  4. Quick Check:

    super.onCreate first = B [OK]
Hint: Always call super.onCreate first inside onCreate [OK]
Common Mistakes:
  • Calling setContentView before super.onCreate
  • Using non-nullable Bundle parameter
  • Expecting onCreate to return a value
5. You want your first Android app to show a greeting message centered on a white background. Which layout XML snippet achieves this?
hard
A.
B.
C.
D.

Solution

  1. Step 1: Check layout size and background

    uses match_parent for width and height and sets background to white (#FFFFFF).
  2. Step 2: Verify text centering

    android:gravity=\"center\" centers the TextView inside the LinearLayout.
  3. Final Answer:

    -> Option A
  4. Quick Check:

    Center gravity + white background = A [OK]
Hint: Use LinearLayout with gravity=center and background=#FFFFFF [OK]
Common Mistakes:
  • Using wrap_content for parent layout size
  • Missing gravity=center for centering
  • Not setting background color
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