Android Fundamentals Codelabs Part – 2

Hi all,

You can reach the Turkish version of this post from here and the first post from here.

After reviewing codelabs, maybe the first post was meaningful but for the following posts, I think only the code samples will be enough. If you noticed my blog post while preparing to codelabs and have questions, please do not hesitate to ask. The the projects below include samples for Unit 1.

Projects:

Android fundamentals 01.2 Part A: Your first interactive UI

Android fundamentals 01.2 Part B: The layout editor

Android fundamentals 01.3: Text and scrolling views

Android fundamentals 01.4: Learn to help yourself

Android fundamentals 02.1: Activities and intents

Android fundamentals 02.2: Activity lifecycle and state

Android fundamentals 02.3: Implicit intents

Android fundamentals 03.1: The debugger

  • I didn’t re-coded the sample because only logging was reviewed with using an existing project.

Android fundamentals 03.2: Unit tests

  • I didn’t re-coded the sample because only unit test was talked with using an existing project.

Android fundamentals 03.3: Support libraries

  • Answer the questions:

    Android fundamentals 01.2 Part B: The layout editor

    QUESTİON 1

    Which two layout constraint attributes on the Zero Button position it vertically equal distance between the other two Button elements? (Pick 2 answers.)

    • app:layout_constraintBottom_toTopOf="@+id/button_count"
    • android:layout_marginBottom="8dp"
    • android:layout_marginStart="16dp"
    • app:layout_constraintTop_toBottomOf="@+id/button_toast"
    • android:layout_marginTop="8dp"

    QUESTİON 2

    Which layout constraint attribute on the Zero Button positions it horizontally in alignment with the other two Buttonelements?

    • app:layout_constraintLeft_toLeftOf="parent"
    • app:layout_constraintBottom_toTopOf="@+id/button_count"
    • android:layout_marginBottom="8dp"
    • app:layout_constraintTop_toBottomOf="@+id/button_toast"

    QUESTİON 3

    What is the correct signature for a method used with the android:onClick XML attribute?

    • public void callMethod()
    • public void callMethod(View view)
    • private void callMethod(View view)
    • public boolean callMethod(View view)

    QUESTİON 4

    The click handler for the Count Button starts with the following method signature:

    public void countUp(View view)

    Which of the following techniques is more efficient to use within this handler to change the Button element’s background color? Choose one:

    • Use findViewById to find the Count Button. Assign the result to a View variable, and then use setBackgroundColor().
    • Use the view parameter that is passed to the click handler with setBackgroundColor()view.setBackgroundColor()

    Android fundamentals 01.3: Text and scrolling views

    QUESTİON 1

    How many views can you use within a ScrollView? Choose one:

    • One view only
    • One view or one view group
    • As many as you need

    QUESTİON 2

    Which XML attribute do you use in a LinearLayout to show views side by side? Choose one:

    • android:orientation="horizontal"
    • android:orientation="vertical"
    • android:layout_width="wrap_content"

    QUESTİON 3

    Which XML attribute do you use to define the width of the LinearLayout inside the scrolling view? Choose one:

    • android:layout_width="wrap_content"
    • android:layout_width="match_parent"
    • android:layout_width="200dp"

    01.4: Learn to help yourself

    QUESTİON 1

    Within an Android Studio project, what menu command can you use to open the list of sample apps? Choose one:

    • File > Open
    • File > New > Import Sample
    • File > New > Import Module
    • File > New > Import Project

    QUESTİON 2

    Which buttons does the Basic Activity template provide as part of the UI? Choose two:

    • Navigation buttons
    • Options menu overflow button
    • Floating action button
    • Button class button with the text “Button”

    QUESTİON 3

    Which source of documentation is the official documentation for Android developers? Choose one:

    • stackoverflow.com
    • officialandroid.blogspot.com
    • developer.android.com
    • github.com

    Android fundamentals 01.4: Learn to help yourself

    QUESTİON 1

    What changes are made when you add a second Activity to your app by choosing File > New > Activity and an Activity template? Choose one:

    • The second Activity is added as a Java class. You still need to add the XML layout file.
    • The second Activity XML layout file is created and a Java class added. You still need to define the class signature.
    • The second Activity is added as a Java class, the XML layout file is created, and the AndroidManifest.xml file is changed to declare a second Activity.
    • The second Activity XML layout file is created, and the AndroidManifest.xml file is changed to declare a second Activity.

    QUESTİON 2

    What happens if you remove the android:parentActivityName and the <meta-data> elements from the second Activity declaration in the AndroidManifest.xml file? Choose one:

    • The second Activity no longer appears when you try to start it with an explicit Intent.
    • The second Activity XML layout file is deleted.
    • The Back button no longer works in the second Activity to send the user back to the main Activity.
    • The Up button in the app bar no longer appears in the second Activity to send the user back to the parent Activity.

    QUESTİON 3

    Which constructor method do you use to create a new explicit Intent? Choose one:

    • new Intent()
    • new Intent(Context context, Class<?> class)
    • new Intent(String action, Uri uri)
    • new Intent(String action)

    QUESTİON 4

    In the HelloToast app homework, how do you add the current value of the count to the Intent? Choose one:

    • As the Intent data
    • As the Intent TEXT_REQUEST
    • As an Intent action
    • As an Intent extra

    QUESTİON 5

    In the HelloToast app homework, how do you display the current count in the second “Hello” Activity? Choose one:

    • Get the Intent that the Activity was launched with.
    • Get the current count value out of the Intent.
    • Update the TextView for the count.
    • All of the above.

    Android fundamentals 02.2: Activity lifecycle and state

    QUESTİON 1

    If you run the homework app before implementing onSaveInstanceState(), what happens if you rotate the device? Choose one:

    • The EditText no longer contains the text you entered, but the counter is preserved.
    • The counter is reset to 0, and the EditText no longer contains the text you entered.
    • The counter is reset to 0, but the contents of the EditText is preserved.
    • The counter and the contents of the EditText are preserved.

    QUESTİON 2

    What Activity lifecycle methods are called when a device-configuration change (such as rotation) occurs? Choose one:

    • Android immediately shuts down your Activity by calling onStop(). Your code must restart the Activity.
    • Android shuts down your Activity by calling onPause()onStop(), and onDestroy(). Your code must restart the Activity.
    • Android shuts down your Activity by calling onPause()onStop(), and onDestroy(), and then starts it over again, calling onCreate()onStart(), and onResume().
    • Android immediately calls onResume().

    QUESTİON 3

    When in the Activity lifecycle is onSaveInstanceState() called? Choose one:

    • onSaveInstanceState() is called before the onStop() method.
    • onSaveInstanceState() is called before the onResume() method.
    • onSaveInstanceState() is called before the onCreate() method.
    • onSaveInstanceState() is called before the onDestroy() method.

    QUESTİON 4

    Which Activity lifecycle methods are best to use for saving data before the Activity is finished or destroyed? Choose one:

    • onPause() or onStop()
    • onResume() or onCreate()
    • onDestroy()
    • onStart() or onRestart()

    Android fundamentals 02.3: Implicit intents

    QUESTİON 1

    Which constructor method do you use to create an implicit Intent to launch a camera app?

    • new Intent()
    • new Intent(Context context, Class<?> class)
    • new Intent(String action, Uri uri)
    • new Intent(String action)

    QUESTİON 2

    When you create an implicit Intent object, which of the following is true?

    • Don’t specify the specific Activity or other component to launch.
    • Add an Intent action or Intent categories (or both).
    • Resolve the Intent with the system before calling startActivity() or startActivityforResult().
    • All of the above.

    QUESTİON 3

    Which Intent action do you use to take a picture with a camera app?

    • Intent takePicture = new Intent(Intent.ACTION_VIEW);
    • Intent takePicture = new Intent(Intent.ACTION_MAIN);
    • Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    • Intent takePicture = new Intent(Intent.ACTION_GET_CONTENT);

    Android fundamentals 03.1: The debugger

    QUESTİON 1

    Run the SimpleCalc app without the debugger. Leave one or both of the EditText elements empty, and try any calculation. Why did the error occur?

    • java.lang.NumberFormatException: empty String
    • W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED
    • The app may be doing too much work on its main thread.
    • The code cache capacity was increased to 128KB.

    QUESTİON 2

    Which function do you perform in the Debug pane in order to execute the current line where the breakpoint is, and then stop at the next line in the code? Choose one:

    • Step Into
    • Step Over
    • Step Out
    • Resume

    QUESTİON 3

    Which function do you perform in the Debug pane in order to jump to the execution of a method call from the current line where the breakpoint is? Choose one:

    • Step Into
    • Step Over
    • Step Out
    • Resume

    Android fundamentals 03.2: Unit tests

    QUESTİON 1

    Which statement best describes a local unit test? Choose one:

    • Tests that run on an Android-powered device or emulator and have access to the Android framework.
    • Tests that enable you to write automated UI test methods.
    • Tests that are compiled and run entirely on your local machine with the Java Virtual Machine (JVM).

    QUESTİON 2

    Source sets are collections of related code. In which source set are you likely to find unit tests? Choose one:

    • app/res
    • com.example.android.SimpleCalcTest
    • com.example.android.SimpleCalcTest (test)
    • com.example.android.SimpleCalcTest (androidTest)

    QUESTİON 3

    Which annotation is used to mark a method as an actual test? Choose one:

    • @RunWith(JUnit4.class)
    • @SmallTest
    • @Before
    • @Test

    Android fundamentals 03.3: Support libraries

    QUESTİON 1

    Which class appears when you first Step Into the ContextCompat.getColor() method? Choose one:

    • MainActivity
    • ContextCompat
    • AppCompatActivity
    • Context

    QUESTİON 2

    In the class that appears, which statement is executed if the build version is API version 23 or newer? Choose one:

    • return context.getColor(id);
    • return context.getResources().getColor(id);
    • throw new IllegalArgumentException("permission is null");
    • return mResources == null ? super.getResources() : mResources;

    QUESTİON 3

    If you change the ContextCompat.getColor() method back to the getColor() method, what will happen when you run the app? Choose one:

    • If your minSdkVersion is 15, the word getColor is underlined in red in the code editor. Hover your pointer over it, and Android Studio reports “Call requires API 23 (current min is 15)”.
    • The app will run without error on emulators and devices using API 23 or newer.
    • The app will crash when the user taps Change Color if the emulator or device is using API 17.
    • All of the above.

    References:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.