Professional Documents
Culture Documents
Exercise 5 - Handling Action
Exercise 5 - Handling Action
1. Create a project
- File > New > New project > Empty Views Activity > Click Next
- Project name, location, language (java), min SDK, Groovy DSL -> Click Finish
2. Handling action - 1st way: Set event name in xml file
- activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
1
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:textSize="24sp" />
<TextView
android:id="@+id/tvUser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="User name" />
<EditText
android:id="@+id/editUser"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tvPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Password" />
<EditText
android:id="@+id/editPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"
android:onClick="onLogin"/>
</LinearLayout>
- MainActivity.java:
2
import android.os.Bundle;
import android.view.View;
import android.widget.Button; Libraries
import android.widget.EditText;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main),
(v, insets) -> {
Insets systemBars =
insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top,
systemBars.right, systemBars.bottom);
return insets;
});
3
Toast.makeText(getApplicationContext(),"Login
failed",Toast.LENGTH_SHORT).show();
}
}
}
3. Handling action – 2nd way: Inline anonymous listener
- Add a new activity: MainActivity1
- main_activity1.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity1">
<TextView
android:id="@+id/tvLogin1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login 1"
android:textSize="24sp" />
<TextView
android:id="@+id/tvUser1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="User name" />
<EditText
android:id="@+id/editUser1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tvPassword1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Password" />
<EditText
android:id="@+id/editPassword1"
4
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btnOk1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Login"/>
</LinearLayout>
- MainActivity1.java:
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
Libraries
import android.widget.EditText;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main1);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main),
(v, insets) -> {
Insets systemBars =
insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top,
systemBars.right, systemBars.bottom);
return insets;
});
5
//Views
Handling Binding Views in
myButton1 = findViewById(R.id.btnOk1);
action myUser1 = findViewById(R.id.editUser1); Java file and Xml
for myPass1 = findViewById(R.id.editPassword1); file
Button
Connect Views in
//Handling event
Java file and Xml
myButton1.setOnClickListener(new View.OnClickListener() {
file by id
@Override
public void onClick(View view) {
if (myUser1.getText().toString().equals("admin") &&
myPass1.getText().toString().equals("12345"))
{
Toast.makeText(getApplicationContext(),"Login
successful",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplicationContext(),"Login
failed",Toast.LENGTH_SHORT).show();
}
}
});
}
}