Pertama, buat proyek baru di Android Studio dengan nama LoginIntent.
pilih Empty Activity
Kemudian, pilih minimal SDK android yang akan digunakan (misal API Level 21 Lollipop 5.0), dan biarkan nama activity dan layout secara default.
Sebelum membuat view, kita akan menambah values dalam file colors.xml dengan nama colorBlack(#000000) dan colorLightGreen(#30e785).
<color name="colorBlack">#000000</color>
<color name="colorLightGreen">#30e785</color>
Sehingga, isi dari file colors.xml menjadi seperti berikut. <?xml version="1.0" encoding="utf-8"?><resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="colorBlack">#000000</color>
<color name="colorLightGreen">#30e785</color>
</resources>
Sesuaikan kode pada layout activity_main.xml menjadi seperti di bawah ini.<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your email"
android:textSize="25sp"
android:inputType="textEmailAddress"
android:maxLines="1"
android:layout_above="@+id/etPassword"/>
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your password"
android:textSize="25sp"
android:inputType="textPassword"
android:maxLines="1"
android:layout_centerVertical="true"/>
<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"
android:textAllCaps="false"
android:background="@color/colorLightGreen"
android:layout_below="@id/etPassword"
android:layout_marginTop="20dp"/>
</RelativeLayout>
Jika dijalankan, tampilan dari xml di atas adalah seperti gambar di bawah ini.Berikut adalah kode pada MainActivity.java.
package azuka.com.loginintent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
//create the variables
private EditText editTextEmail, editTextPassword;
private Button buttonLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//reference to the views
editTextEmail = findViewById(R.id.etEmail);
editTextPassword = findViewById(R.id.etPassword);
buttonLogin = findViewById(R.id.btnLogin);
//set the click listener (what will be done if the button is clicked) for the buttonLogin
buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//create the intent
Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
startActivity(intent);
}
});
}
}
Sekarang, mari kita jalankan aplikasinya terlebih dahulu.Pada kesempatan kali ini, kita akan membuat validasi kondisi email dan password tidak boleh kosong agar user dapat login.
Kita akan memodifikasi MainActivity. Tambah fungsi berikut ini pada metode onCreate di dalam fungsi onClick untuk mengecek apakah email atau password kosong.
//check if email is empty if (email.isEmpty()){ editTextEmail.setError("Please enter your email"); return; } //check if password is empty if (password.isEmpty()){ editTextPassword.setError("Please enter your password"); return; } //call function login login(email);
private void login(String email){
//create the intent
Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
intent.putExtra(EMAIL, email);
startActivity(intent);
}
Sekarang, kita akan memodifikasi activity_home.xml sehingga isinya seperti ini. <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HomeActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="You're logged in as"
android:layout_above="@+id/tvEmail"/>
<TextView
android:id="@+id/tvEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This will be replaced by your email"
android:layout_centerVertical="true"
android:textSize="20sp"
android:textColor="@color/colorBlack"/>
</RelativeLayout>
Kemudian, kita akan menambah fungsi di dalam HomeActivity agar dapat mengubah teks "This will be replaced by your email" menjadi email yang sebelumnya dimasukkan. Hal ini dinamakan passing data (melewatkan data) antar activity.Tambahkan fungsi di bawah ini :
textViewEmail = findViewById(R.id.tvEmail);
String email = getIntent().getStringExtra(MainActivity.EMAIL);
textViewEmail.setText(email);
Akhirnya, selesai juga aplikasi Login dengan Data dan Validasi
Berikut adalah kode lengkapnya.
- MainActivity.java
package azuka.com.loginintent;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
//create the variables
private EditText editTextEmail, editTextPassword;
private Button buttonLogin;
public static final String EMAIL = "azuka.com.loginintent.email";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//reference to the views
editTextEmail = findViewById(R.id.etEmail);
editTextPassword = findViewById(R.id.etPassword);
buttonLogin = findViewById(R.id.btnLogin);
//set the click listener (what will be done if the button is clicked) for the buttonLogin
buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//save input data to variables
String email = editTextEmail.getText().toString();
String password = editTextPassword.getText().toString();
//check if email is empty
if (email.isEmpty()){
editTextEmail.setError("Please enter your email");
return;
}
//check if password is empty
if (password.isEmpty()){
editTextPassword.setError("Please enter your password");
return;
}
//call function login
login(email);
}
});
}
private void login(String email){
//create the intent
Intent intent = new Intent(getApplicationContext(), HomeActivity.class);
intent.putExtra(EMAIL, email);
startActivity(intent);
}
}
- HomeActivity.java
package azuka.com.loginintent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class HomeActivity extends AppCompatActivity {
//create the variables
private TextView textViewEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//reference to the views
textViewEmail = findViewById(R.id.tvEmail);
String email = getIntent().getStringExtra(MainActivity.EMAIL);
textViewEmail.setText(email);
}
}
Jangan sungkan untuk bertanya di kolom komentar di bawah ini jika kalian mengalami kesulitan mengimplementasikannya atau kalian merasa bingung.
Comments
Post a Comment