Posts

How to Create an Emulator in Android Studio

Image
In this article, we will take a look at how to create an emulator in Android Studio.
First, open Android Studio to create a project or open an existing project. Now, Click on the Tools in the top menu and then on AVD Manager.

This opens the Android Virtual Device Manager where we can create our emulators.


Start the creation of the emulator by clicking on the Create Virtual Device button. It opens a new screen where we select the device hardware.


In addition to the available hardware profiles, we can import an existing profile or create new hardware by clicking on the options at the bottom left.


Click Next after selecting the hardware profile. Now we are asked to select the OS Version. Select the preferred one and download it if necessary. After that, click Next.




Verify the configuration of the selected hardware. If we want to tweak more than the AVD name then in the advanced settings we can change the number of cores, RAM, internal Storage space, external storage space and more.


Fina…

Get the Result From Last Activity When Middle Activity Is Finished

We usually get the result from an activity by starting it with startActivityForResult() and listening to the onActivityResult() in the calling activity. But there are some cases, where we may want the result to be received from the subsequent activities rather than the immediately invoked activity.
For example, let's take three activities named FirstActivity, SecondActivity (middle activity) and ThirdActivity (last activity). They have a feature through which the first activity opens the second activity and the second activity opens the third activity closing itself. Now, the third activity has to send the result back to the first activity.
In this article, we will take a look at this scenario where we have to send the result from the last activity and read it in the first activity.
As usual, we start the middle activity for the result from the first activity.
// Open the middle activity startActivityForResult( Intent(context, SecondActivity::class.java), …

How to Change Material Chip Text Size, Text Style and Font

Chips in Android is a Material Design Component used primarily for actions or choice or during filters or as an input.
The attributes like textColor, textStyle and fontFamily are ignored when added to the Material Chips directly. We need to modify these values using textAppearance.
<com.google.android.material.chip.Chip android:id="@+id/maleChip" style="@style/Widget.MaterialComponents.Chip.Choice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checkable="true" android:layoutDirection="locale" android:text="@string/chip_text_male" android:textAppearance="@style/AppTheme.GenderChip" android:textColor="@color/colorWhiteText" app:chipBackgroundColor="@drawable/select_chip" app:chipEndPadding="@dimen/chip_horizontal_margin" app:chipStartPadding="@dimen/chip_horizontal_margin" />
The te…

Use Kotlin Android Extensions to Replace findViewById

Kotlin Android Extensions is a great way to avoid writing findViewById in the activity or fragment.

Simply, add the kotlin-android-extensions plugin to the module level build.gradle file.
apply plugin: 'kotlin-android-extensions'
Only one step to enable the feature. Now, we can remove the manual initializations.
// Initialize the UI elements val constraintLayout = findViewById<ConstraintLayout>(R.id.coordinatorLayout) val responseTextView = findViewById<TextView>(R.id.responseTextView) val bottomAppBar = findViewById<BottomAppBar>(R.id.bottomAppBar) val fab = findViewById<FloatingActionButton>(R.id.fab) val productRecyclerView = findViewById<RecyclerView>(R.id.productRecyclerView) val filterButton = findViewById<Button>(R.id.filterButton) val sortButton = findViewById<Button>(R.id.sortButton)
The compilers suggest us only one import to get all the synthetic properties available in the layout. If the above views are available in the activ…

Add View Binding to Replace findViewById

View Binding initializes every UI element which has an id in the layout files and exposes them to the developers through a generated class.

If you think writing findViewById in every activity or fragment should not be a developer's job then you are reading the right article.

Does the code inside the activity or fragment start like this?
Manual UI elements initialization

// Initialize the UI elements final ConstraintLayout constraintLayout = findViewById(R.id.coordinatorLayout); final TextView responseTextView = findViewById(R.id.responseTextView); final BottomAppBar bottomAppBar = findViewById(R.id.bottomAppBar); final FloatingActionButton fab = findViewById(R.id.fab); final RecyclerView productRecyclerView = findViewById(R.id.productRecyclerView); final Button filterButton = findViewById(R.id.filterButton); final Button sortButton = findViewById(R.id.sortButton);
Butter Knife UI elements initialization

// UI elements @BindView(R.id.coordinatorLayout) CoordinatorLayout coordinatorLayo…

How to Fetch and Save Stock Price

Historical stock prices are available on a significant number of websites to download but wouldn't it be easier to use a script to fetch these prices and save it to our local machine?
In this article, we will learn how to fetch the historic stock prices of a company using Python. Let's first import the required dependencies to perform the actions.
# Get the dates import datetime # Create files in the operating system import os # Convert data frames to file formats import pandas as pd # Fetch the stock prices import pandas_datareader as web # Find relative dates of the past or of the future from dateutil.relativedelta import relativedelta
Now, create a StockPrice class with a helper function fetch to fetch the stock price and save function to save the stock prices to the local folder.
class StockPrice: """ Provide functionality to fetch the historical stock prices and save it to a path """ def __init__(self): ""&q…

Alert Dialog - Material Design Component

Image
Alert Dialog in Android is a blocking window shown to the user for immediate user attention and interaction.
To build and show an alert dialog, we will be using MaterialAlertDialogBuilder. It is an extension of AlertDialog.Builder that we are familiar with but provides Material theming to the dialog.
The below pictures shows the subtle differences in using MaterialAlertDialogBuilder and AlertDialog.Builder.


Before, we start implementing the Material Alert Dialog, add Material Design Components to our project. Now, let's create the Alert Dialog.
private fun showAlert(context: Context) { // Build the dialog val builder = MaterialAlertDialogBuilder(context) // Set Dialog title .setTitle(context.getString(R.string.alert_dialog_title)) // Set Dialog message .setMessage( context.getString( R.string.alert_dialog_message, nameTextView.text.toString().capitalize(Locale.US) ) ) //…