Add an activity
In this lesson, you will learn how to create a new View in your app and how to launch it with an Intent

Create a new activity
In the Project window, right-click the app folder and select New > Activity > Empty Activity.You can also use menu File > New > Activity > Empty Activity
In the Configure Activity window, enter a name for our new activity : WindowActivity.Leave all other properties set to their defaults and click Finish.
Android Studio automatically does three things:
Creates the WindowActivity file.
Creates the layout file activity_window.xml, which corresponds with the WindowActivity file.
Adds the required <activity> element in AndroidManifest.xml.
We will now update activity_window.xml to display a window name and a label. Open this file
Add a new TextView to display a label name with these properties
text : Window name (should be defined in strings.xml)
margin top 16dp
margin left 16dp
Add a new TextView below the first one with these properties
text : empty
textAppearance : @style/TextAppearance.AppCompat.Large
margin top 8dp
margin left 16dp
id txt_window_name
Build an intent to open an activity
An Intent is an object that provides runtime binding between separate components, such as two activities. These activities can be in the same app or not. For example if you need to open a web page you won’t develop a new browser. You will open this web page in installed browser as Firefox or Chrome.
The Intent represents an app’s intent to do something. You can use intents for a wide variety of tasks, but in this lesson, your intent starts another activity in the same app.

When you create an Intent you define a context, a target and you can send zero, one or more informations to the target. An Intent can carry data types as key-value pairs called extras. In this lab you will open WindowActivity when a user will click on MainActivity button Open Window
Update method openWindow in MainActivity to
define an Intent
target WindowActivity
put the window name filled in MainActivity in the sent attributes (extra). Each extra is identified by a string. It’s a good practice to define keys for intent extras with your app’s package name as a prefix. This ensures that the keys are unique, in case your app interacts with other apps.
class MainActivity : AppCompatActivity() { companion object { const val WINDOW_NAME_PARAM = "com.faircorp.windowname.attribute" } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun openWindow(view: View) { // Extract value filled in editext identified with txt_window_name id val windowName = findViewById<EditText>(R.id.txt_window_name).text.toString() val intent = Intent(this, WindowActivity::class.java).apply { putExtra(WINDOW_NAME_PARAM, windowName) } startActivity(intent) } }
On the other side on WindowActivity you have to
read the name sent in intent
find Textview to update in Layout (this widget is identified by an id)
update this Textview with the name
class WindowActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_window) val param = intent.getStringExtra(MainActivity.WINDOW_NAME_PARAM) val windowName = findViewById<TextView>(R.id.txt_window_name) windowName.text = param } }
It’s time to test yours changes.
Click Apply Changes in the toolbar to run the app. Type a window name in the text field and click on the button to see the message in the second activity
Manage back button to return on main activity
When you are on WindowActivity we want to add a button to go back on MainActivity. To do that you need to update WindowActivity and add a line to activate option in action bar supportActionBar?.setDisplayHomeAsUpEnabled(true)
class WindowActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_window) supportActionBar?.setDisplayHomeAsUpEnabled(true) //... } }
You also need to define your activity parent. This definition is made in AndroidManifest.xml with property parentActivityName
<activity android:name=".WindowActivity" android:parentActivityName=".MainActivity"></activity>
Click Apply Changes in the toolbar to run the app and test back button.