We created an application with no screens. We will not waste time, we will create one! Create a new package named activity
where all our screen classes will be defined, and create your first Activity
class named MainActivity.kt
. We will start with one simple class:
package com.journaler.activity import android.os.Bundle import android.os.PersistableBundle import android.support.v7.app.AppCompatActivity import com.journaler.R class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { super.onCreate(savedInstanceState, persistentState) setContentView(R.layout.activity_main) } }
Soon, we will explain the meaning of all these lines. For now, it's important to note that setContentView(R.layout.activity_main)
assigns UI resource to our screen and activity_main
is a name of the XML defining it. Since we don't have it yet, we will create it. Locate res
directory under the main
directory. If there is no layout folder there, create one and then create a new layout named activity_main
by right-clicking on layout
directory and choosing the New
| Layout
resource file. Assign activity_main
as its name and LinearLayout
as its root element. The content of the file should be similar to this:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/ apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout>
There is one more thing to do before we are ready to run our application: we must tell our manifest about this screen. Open the main manifest
file and add the following piece of code:
<application ... > <activity android:name=".activity.MainActivity" android:configChanges="orientation" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
We will explain all these attributes soon; all you need to know for now is that your application is ready to run. However, before that, commit and push
your work. You don't want to lose it!