google ASSOCIATE ANDROID DEVELOPER Exam Questions

Questions for the ASSOCIATE ANDROID DEVELOPER were updated on : Jul 20 ,2024

Page 1 out of 9. Viewing questions 1-15 out of 128

Question 1 Topic 1, KOTLIN only

Topic 1
What is a correct part of an Implicit Intent for sharing data implementation?

  • A. val sendIntent = Intent(this, UploadService::class.java).apply { putExtra(Intent.EXTRA_TEXT, textMessage) ...
  • B. val sendIntent = Intent().apply { type = Intent.ACTION_SEND; ...
  • C. val sendIntent = Intent(this, UploadService::class.java).apply { data = Uri.parse(fileUrl) ...
  • D. val sendIntent = Intent().apply { action = Intent.ACTION_SEND ...
Answer:

D

User Votes:
A
50%
B
50%
C
50%
D
50%

Explanation:
Create the text message with a string
val sendIntent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, textMessage) type =
"text/plain" }
Reference: https://developer.android.com/guide/components/fundamentals

Discussions
vote your answer:
A
B
C
D
0 / 1000

Question 2 Topic 1, KOTLIN only

Topic 1
By default, the notification's text content is truncated to fit one line. If you want your notification to be longer, for example, to
create a larger text area, you can do it in this way:

  • A. var builder = NotificationCompat.Builder(this, CHANNEL_ID) .setContentText("Much longer text that cannot fit one line...") .setStyle(NotificationCompat.BigTextStyle() .bigText("Much longer text that cannot fit one line...")) ...
  • B. var builder = NotificationCompat.Builder(this, CHANNEL_ID) .setContentText("Much longer text that cannot fit one line...") .setLongText("Much longer text that cannot fit one line...")) ...
  • C. var builder = NotificationCompat.Builder(this, CHANNEL_ID) .setContentText("Much longer text that cannot fit one line...") .setTheme(android.R.style.Theme_LongText); ...
Answer:

A

User Votes:
A
50%
B
50%
C
50%

Explanation:
Reference:
https://developer.android.com/training/notify-user/build-notification

Discussions
vote your answer:
A
B
C
0 / 1000

Question 3 Topic 1, KOTLIN only

Topic 1
Select correct demonstration of WorkRequest cancellation.

  • A. workManager.enqueue(OneTimeWorkRequest.Builder(FooWorker::class.java).build())
  • B. val request: WorkRequest = OneTimeWorkRequest.Builder(FooWorker::class.java).build() workManager.enqueue(request) val status = workManager.getWorkInfoByIdLiveData(request.id) status.observe(...)
  • C. val request: WorkRequest = OneTimeWorkRequest.Builder(FooWorker::class.java).build() workManager.enqueue(request) workManager.cancelWorkById(request.id)
  • D. val request1: WorkRequest = OneTimeWorkRequest.Builder(FooWorker::class.java).build() val request2: WorkRequest = OneTimeWorkRequest.Builder(BarWorker::class.java).build() val request3: WorkRequest = OneTimeWorkRequest.Builder(BazWorker::class.java).build() workManager.beginWith(request1, request2).then(request3).enqueue()
  • E. val request: WorkRequest = OneTimeWorkRequest.Builder(FooWorker::class.java).build() workManager.enqueue(request) workManager.cancelWork(request)
Answer:

C

User Votes:
A
50%
B
50%
C
50%
D
50%
E
50%

Explanation:
Videos:
Working with WorkManager, from the 2018 Android Dev Summit

WorkManager: Beyond the basics, from the 2019 Android Dev Summit

Reference: https://developer.android.com/reference/androidx/work/WorkManager?hl=en

Discussions
vote your answer:
A
B
C
D
E
0 / 1000

Question 4 Topic 1, KOTLIN only

Topic 1
In general, you should send an AccessibilityEvent whenever the content of your custom view changes. For example, if you
are implementing a custom slider bar that allows a user to select a numeric value by pressing the left or right arrows, your
custom view should emit an event of type TYPE_VIEW_TEXT_CHANGED whenever the slider value changes. Which one of
the following sample codes demonstrates the use of the sendAccessibilityEvent() method to report this event.

  • A. override fun dispatchPopulateAccessibilityEvent(event: AccessibilityEvent): Boolean { return super.dispatchPopulateAccessibilityEvent(event).let { completed -> if (text?.isNotEmpty() == true) { event.text.add(text) true } else { completed
  • B. override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when(keyCode) { KeyEvent.KEYCODE_DPAD_LEFT -> { currentValue-- sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED) true ...
  • C. override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when(keyCode) { KeyEvent.KEYCODE_ENTER -> { currentValue-- sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CONTEXT_CLICKED) true ...
Answer:

B

User Votes:
A
50%
B
50%
C
50%

Explanation:
Reference: https://developer.android.com/guide/topics/ui/accessibility/custom-views

Discussions
vote your answer:
A
B
C
0 / 1000

Question 5 Topic 1, KOTLIN only

Topic 1
The easiest way of adding menu items (to specify the options menu for an activity) is inflating an XML file into the Menu via
MenuInflater. With menu_main.xml we can do it in this way:

  • A. override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.menu_main, menu) return true
  • B. override fun onOptionsItemSelected(item: MenuItem): Boolean { menuInflater.inflate(R.menu.menu_main, menu) return super.onOptionsItemSelected(item) }
  • C. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.menu.menu_main) }
Answer:

A

User Votes:
A
50%
B
50%
C
50%

Explanation:
Reference: https://developer.android.com/guide/topics/ui/accessibility/custom-views

Discussions
vote your answer:
A
B
C
0 / 1000

Question 6 Topic 1, KOTLIN only

Topic 1
Android Tests. You can use the childSelector() method to nest multiple UiSelector instances. For example, the following
code example shows how your test might specify a search to find the first ListView in the currently displayed UI, then search
within that ListView to find a UI element with the text property Apps. What is the correct sample?

  • A. val appItem: UiObject = device.findObject( UiSelector().className(ListView.class) .instance(1) .childSelector( UiSelector().text("Apps")
  • B. val appItem: UiObject = device.findObject( UiSelector().className("android.widget.ListView") .instance(0) .childSelector( UiSelector().text("Apps")
  • C. val appItem: UiObject = device.findObject( UiSelector().className("android.widget.ListView") .instance( UiSelector().text("Apps")
Answer:

B

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000

Question 7 Topic 1, KOTLIN only

Topic 1
The following code snippet shows an example of an Espresso test:

  • A. @Rule fun greeterSaysHello() { onView(withId(R.id.name_field)).do(typeText("Steve")) onView(withId(R.id.greet_button)).do(click()) onView(withText("Hello Steve!")).check(matches(isDisplayed())) }
  • B. @Test fun greeterSaysHello() { onView(withId(R.id.name_field)).perform(typeText("Steve")) onView(withId(R.id.greet_button)).perform(click()) onView(withText("Hello Steve!")).check(matches(isDisplayed())) }
  • C. @Test fun greeterSaysHello() { onView(withId(R.id.name_field)).do(typeText("Steve")) onView(withId(R.id.greet_button)).do(click()) onView(withText("Hello Steve!")).compare(matches(isDisplayed())) }
Answer:

B

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000

Question 8 Topic 1, KOTLIN only

Topic 1
As an example. In an Activity we have our TimerViewModel object (extended ViewModel), named mTimerViewModel.
mTimerViewModel.timer method returns a LiveData value. What can be a correct way to set an observer to change UI in
case if data was changed?

  • A. mTimerViewModel!!.timer.value.toString().observe (Observer { aLong -> callAnyChangeUIMethodHere(aLong!!) })
  • B. mTimerViewModel!!.timer.observe (this, Observer { aLong -> callAnyChangeUIMethodHere(aLong!!) })
  • C. mTimerViewModel.observe (Observer { aLong -> callAnyChangeUIMethodHere(aLong!!) })
Answer:

B

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000

Question 9 Topic 1, KOTLIN only

Topic 1
LiveData.postValue() and LiveData.setValue() methods have some differences. So if you have a following code executed in
the main thread:
liveData.postValue("a"); liveData.setValue("b");
What will be the correct statement?

  • A. The value "b" would be set at first and later the main thread would override it with the value "a".
  • B. The value "a" would be set at first and later the main thread would override it with the value "b".
  • C. The value "b" would be set at first and would not be overridden with the value "a".
  • D. The value "a" would be set at first and would not be overridden with the value "b".
Answer:

B

User Votes:
A
50%
B
50%
C
50%
D
50%
Discussions
vote your answer:
A
B
C
D
0 / 1000

Question 10 Topic 1, KOTLIN only

Topic 1
In our TeaViewModel class, that extends ViewModel, we have such prorerty: val tea: LiveData
An observer in our Activity (type of mViewModel variable in example is TeaViewModel) is set in this way:
mViewModel!!.tea.observe(this, Observer { tea: Tea? -> displayTea(tea) })
What will be a correct displayTea method definition?

  • A. private fun displayTea()
  • B. private fun displayTea(tea: Tea?)
  • D. private fun displayTea(tea: LiveData?)
Answer:

B

User Votes:
A
50%
B
50%
D
50%
Discussions
vote your answer:
A
B
D
0 / 1000

Question 11 Topic 1, KOTLIN only

Topic 1
For example, our preferences.xml file was added by addPreferencesFromResource(R.xml.preferences). Our
preferences.xml file contains such item:
<>
android:id="@+id/notification" android:key="@string/pref_notification_key" android:title="@string/pref_notification_title"
android:summary="@string/pref_notification_summary" android:defaultValue="@bool/pref_notification_default_value"
app:iconSpaceReserved="false"/>
In our Fragment, we can dynamically get current notification preference value in this way:

  • A. val isNotificationOn = PreferenceManager.getDefaultSharedPreferences(context).getBoolean( context!!.getString(R.string.pref_notification_key), context!!.resources.getBoolean(R.bool.pref_notification_default_value) )
  • B. val isNotificationOn = PreferenceManager.getSharedPreferences(context).getBoolean( context!!.getString(R.string.pref_notification_default_value), context!!.getString(R.string.pref_notification_key), )
  • C. val isNotificationOn = PreferenceManager.getSharedPreferences(context).getBoolean( context!!.resources.getBoolean(R.bool.pref_notification_default_value), context!!.getString(R.string.pref_notification_key) )
Answer:

A

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000

Question 12 Topic 1, KOTLIN only

Topic 1
For example, our preferences.xml file was added by addPreferencesFromResource(R.xml.preferences). Our
preferences.xml file contains such item:
android:entries="@array/sort_oder" android:entryValues="@array/sort_oder_value"
android:defaultValue="@string/pref_default_sort_value" app:iconSpaceReserved="false" />
In our Fragment, we can dynamically get current notification preference value in this way:

  • A. val sortBy = PreferenceManager.getDefaultSharedPreferences(context).getString( context!!.getString(R.string.pref_sort_key), context!!.resources.getBoolean(R.bool.pref_default_sort_value) )
  • B. val sortBy = PreferenceManager.getSharedPreferences(context).getString( context!!.getString(R.string.pref_default_sort_value), context!!.getString(R.string.pref_sort_key), )
  • C. val sortBy = PreferenceManager.getSharedPreferences(context).getBoolean( context!!.resources.getBoolean(R.bool.pref_default_sort_value), context!!.getString(R.string.pref_sort_key) )
  • D. val sortBy = PreferenceManager.getDefaultSharedPreferences(context).getString( context!!.getString(R.string.pref_sort_key), context!!.getString(R.string.pref_default_sort_value) )
Answer:

D

User Votes:
A
50%
B
50%
C
50%
D
50%
Discussions
vote your answer:
A
B
C
D
0 / 1000

Question 13 Topic 1, KOTLIN only

Topic 1
For example, we have a file in our raw folder app/src/main/res/raw/sample_teas.json. To get an InputStream for reading it,
from out Context context, we can do this:

  • A. val input = context!!.openRawResource(R.raw.sample_teas)
  • B. val input = context!!.getRawResource(R.raw.sample_teas)
  • C. val input = context!!.resources.openRawResource(R.raw.sample_teas)
Answer:

C

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000

Question 14 Topic 1, KOTLIN only

Topic 1
For example, we have a BufferedReader reader, associated with the json file through InputStreamReader. To get a file data
we can do this:

  • A. var line: String? try { while (reader.readLine().also { line = it } != null) { builder.append(line) val json = JSONObject(builder.toString()) return json } catch (exception: IOException) { exception.printStackTrace() } catch (exception: JSONException) { exception.printStackTrace()
  • B. var line: JSONObject ? try { while (reader.readJSONObject ().also { line = it } != null) { builder.append(line) val json = JSONObject(builder.toString()) return json } catch (exception: IOException) { exception.printStackTrace() } catch (exception: JSONException) { exception.printStackTrace()
  • C. var line: String? try { while (reader.readLine().also { line = it } != null) { builder.append(line) val json = JSONObject(builder.toString()) return json } catch (exception: RuntimeException) { exception.printStackTrace() } catch (exception: ArrayIndexOutOfBoundsException) { exception.printStackTrace()
Answer:

A

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000

Question 15 Topic 1, KOTLIN only

Topic 1
For example, we have a file in our assets folder app/src/main/assets/sample_teas.json. To get an InputStream for reading it,
from out Context context, we can try do this:

  • A. val input = context!!.resources.openRawResource(R.raw.sample_teas)
  • B. val input = context!!.assets.open("sample_teas.json")
  • C. val input = context!!.resources.assets.open("sample_teas.json")
Answer:

B

User Votes:
A
50%
B
50%
C
50%
Discussions
vote your answer:
A
B
C
0 / 1000
To page 2