For Android applications, each window is called an activity. From a programming point of view, an activity
is a class that extends the Activity
class. Unlike other systems in which a program contains several windows displayed simultaneously, in Android, the screen is always occupied by a single window. Moreover, windows are connected by the simple fact that a window generates several windows. The window that appears on the screen when the application is started is considered the main activity that generates all the others. To create an activity, we need to create a class that extends the Activity
class. At startup, the program will generate it, and we can interact with the window through events.
Some of the most important events are:
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); } }
super.onCreate()
.
This event is called when the activity is created. Here is where we initialize the window components. To make the elements on the window visible, it is necessary to call the setContentView
function. There are cases in which when starting the application, it must return to a previous state (e.g. after a forced stop). Thus, it is recommended that we check if the window is a new one or not, e.g. if the Bundle
variable of passed as parameter is null or not.
if (savedInstanceState! = null) {// window is not new and some remaining data must be loaded} else {// window is new}
When this event is called, the window prepares to stop. That is why it is important to save all the changes we need. Here we will stop processes that are no longer needed when the application is not running, such as video or audio elements.
One of the most important elements of an application is the graphical interface. In order to be able to differentiate the graphical interface from the writing of the application code, the two are in different files. Also, the interface design is done in another language, a descriptive one. It resembles the HTML language, being made up of bookmarks.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
There is a bookmark for each item on the window. The name of the bookmark is the same as the class name on the code side. The elements have certain characteristics: positioning, dimensions, color, text. To set each property we write a parameter in the following way: android: property = “value”
The UI elements such as buttons and TextViews can also be modified from Java code, not just the XML file, because almost all XML properties have an equivalent function in JAVA. We use this option when we want an element of the window to change when calling a certain event. To do this, we need to create a link between the XML element and the code. First, in addition to the already set properties of the element, we will add another: id. android: id = ”@ + id / idElement”
. After that, the element can be identified by id and we can link it to Java code: Button button = findViewById (R.id.buton1);
Inside any application, we will want to use different resources, such as images. All these elements that we want to add to the application must be saved in the res
directory. They can be added to the UI from the XML code or from the Java gift. In XML there are certain elements that support these resources, such as ImageView
. These are displayed using the following assignment: android: src = ”@ drawable / picture_name”
From the Java code, they are added as follows:
ImageView i=(ImageView) findViewById(R.id.img); i.setImageResource(R.drawable.image);
Gray
and when one of the buttons is clicked, change the text to the color written on the pressed button.Toast
.BONUS
Spinner
.