Your Programming Careers Questions Answered 
 
Access to Programming Career Q&A 
 
FAQ: Templates in Android Studio 3.6 and later 
 
More on Android Templates 
 
Setting Up a Virtual Device 
 
FAQ: Emulators on Windows 10 with AMD processor 
 
Running on a physical Android device 
 
FAQ for Android Studio 3.3 
 
More on Variables and Types 
 
String Concatenation and Interpolation 
 
val and var and more on Declarations 
 
for Encapsulation and Private Properties 
 
Inner Lines within a Widget 
 
Layouts on Different Devices 
 
Layout Designer rendering error 
 
FAQ: Baseline Constraints change 
 
Add Scrolling Capabilities 
 
Coding Button Counter App 
 
Events and setonclicklistener 
 
Testing and Challenge Time 
 
Fixing Kotlin Gradle Issues 
 
Logging the Activity Lifecycle 
 
Activity Lifecycle in Action 
 
Saving and Restoring Instance State 
 
Calculator Interface Setup 
 
Comparing FIles with Diff 
 
Write Perform Operation Function 
 
Bug Fix and Code Improvements 
 
Bug Fix Challlenge and Save State 
 
Widget References in Kotlin 
 
Code Changes for Neg Button 
 
Add Neg Button to Portrait 
 
Log Tag and Companion Objects 
 
Kotlin top-level constants 
 
Download JSON - doInBackground 
 
Project Diagram and Photo Class 
 
GetFlickrJsonData class continued 
 
Flickr Browser User Inferface 
 
Search and PhotoDetail Activities 
 
onBindViewHolder and Picasso 
 
Associate Adapter to Recyclerview 
 
RecyclerItemClickListener 
 
Displaying the full photo 
 
Modify Photo Details Activity 
 
Update for later version of Kotlin 
 
AppCompat - Backwards Compatibility 
 
Other Material Design Changes 
 
Missing Style Editor video 
 
Differences in API Levels 
 
String Resources Placeholders 
 
Adding the Search Feature 
 
Deprecation of framework PreferenceManager class 
 
Introduction to Databases 
 
Command Line and Path Setup for Windows 
 
Command Line and Path Setup for Mac 
 
Command Line and Path Setup for Ubuntu Linux 
 
Housekeeping and Challenge 
 
Create Table Add Data and Test 
 
Contact Provider App Layout 
 
ContentResolver and Abstraction 
 
Retrieving Data with a ContentResolver 
 
Checking Permissions at Runtime 
 
Avoiding Crashes Snackbars and a Challenge 
 
Test Scripts Challenge and Cleanup 
 
The TaskTimer Application 
 
Create SQL for Tasks Table 
 
Singleton AppDatabase Class 
 
FAQ: context in a ContentProvider 
 
Register the ContentProvider 
 
Using appendWhereEscapeString 
 
Mime Types in the Content Provider 
 
Testing Insert and Update 
 
Testing Bulk Update and Delete 
 
Task List Items Constraints 
 
The Fragment Lifecycle Part 1 
 
The Fragment Lifecycle Part 2 
 
Logging the Fragment Lifecycle 
 
Android SDK Gradle and Kotlin Updates 
 
Up and Back Navigation for Fragments 
 
Object can have More than One Type 
 
Completing the AddEdit UI 
 
Updating Android Studio Kotlin and Gradle 
 
Fixing New Kotlin Warnings 
 
RecyclerView CursorAdapter 
 
Subscribe to The ViewModel 
 
Notifications and Observers 
 
onClick Listeners Interfaces and Callbacks 
 
Responding to Clicks from the Adapter 
 
Solution to The Interface Challenge 
 
Deleting a Task from The Database 
 
Accessing a Database on a Background Thread 
 
Background Processing Using a Coroutine 
 
Sharing ViewModel Instances 
 
Adding a Dialog to The App 
 
Confirming Exit Without Saving 
 
Implementing the Interface 
 
Kotlin Extension Functions 
 
Create an About Dialog the Layout Part 1 
 
Create an About Dialog the Layout Part 2 
 
Displaying the About Dialog 
 
Versioning and build.gradle 
 
Supporting Older Versions 
 
Compatibility Challenge Solution Part 1 
 
Compatibility Challenge Solution Part 2 
 
Adding the view to the Database 
 
Adding the view to the ContentProvider 
 
Testing the Database Upgrade 
 
Finishing the reports layouts - challenge 
 
The Durations Report Activity 
 
Testing Different Locales 
 
Creating the reports ViewModel 
 
Using the DurationsViewModel 
 
Vector Drawables and Asset Studio 
 
Report Menu Code - day/week toggle 
 
Filtering in the DurationsViewModel 
 
Testing the Report Filters 
 
Deleting old Timings data 
 
Observing the cursor in the ViewModel 
 
Observing a Configuration Change 
 
Using the First Day Of Week Setting 
 
Taking Advantage of Later Features 
 
Testing the new DatePickerFragment 
 
Observing SharedPreference changes 
 
Solution to Ignore Short Timings Challenge 
 
Plugin and Library Versions 
 
Code Review - The AppProvider Class 
 
Code Review - CursorRecyclerViewAdapter DurationsReport and the ViewModels 
 
Code Review - MainActivity and the Contract classes 
 
Improvements to coroutines in a ViewModel 
 
Bug Fixes and Ideas for Improvements 
 
Prevent Deletion of Edited Task 
 
Implementing Delete by Swiping - Part 1 
 
Implementing Delete by Swiping - Part 2 
 
Implementing Delete by Swiping - Part 3 
 
Challenge - Deleting a task that's being timed 
 
Adding the Parameters Table 
 
Using the Parameterised View in our ViewModels