Kompetensi dan Indikator
Kompetensi Dasar:
- Membuat lebih dari satu Activity, menjalankan Activity k
- Mengirimkan data antar Activity
Indikator:
- Mahasiswa mampu membuat aplikasi dengan beberapa Activity di dalamnya.
- Mahasiswa mampu mengambil serta mengirimkan data antar Activity.
Materi
A Dasar Teori
Sebuah Activity mewakili satu tampilan layar (screen) didalam aplikasi, dimana user dapat melakukan aktivitas tertentu seperti mengambil gambar, mengirim email, melihat peta dan lain-lain. Activity biasanya ditunjukkan satu layar penuh dalam device. Sebuah aplikasi biasanya juga terdiri dari multiple/beberapa activity. Salah satu activity merupakan "main activity" yang ditampilkan pertama kali pada saat aplikasi dibuka. Setiap activity kemudian dapat digunakan untuk menjalankan activity lain yang memiliki aksi yang berbeda.
Acitivity pada aplikasi Android dimulai atau diaktifkan melalui sebuah intent. Intent merupakan pesan tidak langsung yang dapat digunakan pada activity untuk meminta sebuah aksi dari aktivity lain (atau komponen app lain). Intent digunakan untuk menjalankan satu activity dari activity lain ·dan untuk mengirimkan data antar activity.
B Membuat Aplikasi Dengan Dua Activity
Dalam kasus ini, aplikasi yang akan dibuat adalah aplikasi yang terdiri dari 2 activity yang dapat saling bertukar pesan. Berikut adalah langkah-langkahnya :
- Buat project baru, misal dengan nama MyAplication6
- Buka file activity_main.xml (merupakan Activity pertama) dan ubah layout menjadi RelativeLayout
- Ubahlah desain layout Activity utama tersebut menjadi
- Atau dalam editor kode XML
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:id="@+id/btnSend" android:onClick="btnSend" android:text="SEND" /> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/btnSend" android:layout_alignParentBottom="true"/>
- Buat Activity baru dengan nama "SecondActivity" dalam project Aplikasi . Caranya, klik kanan package app ➜ New ➜ Activity ➜ Empty Avtivity
- Buka file activity_second.xml (merupakan Activity kedua) dan ubah layout menjadi RelativeLayout
- Ubahlah desain layout Activity second tersebut menjadi
- Atau dalam editor kode XML
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt1" android:text="Pesan diterima" android:textSize="14sp" android:textStyle="bold" android:paddingLeft="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt2" android:text="Ini adalah pesan yang diterima" android:textSize="12sp" android:paddingLeft="20dp" android:layout_below="@id/txt1"/>
- Mendeskripsikan Main Activity sebagai Parent dari SecondActivity. Edit file AndroidManifest.xml menjadi
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication6"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:parentActivityName=".MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".com.example.myapplication6.MainActivity"/> </activity> </application> </manifest>
- Membuat method untuk menampilkan SecondActivity melalui Button Send yang telah dibuat. Pada activity utama MainActivity.class tambahkan method btnSend() dibawah method onCreate() dan tambahkan sebuah intent di dalamnya
public void btnSend(View view){ Intent intent =new Intent (this, SecondActivity.class); startActivity(intent); }
- Coba jalankan aplikasi terlebih dahulu
C Mengambil Nilai dari MainActivity dan mengirim kan ke SecondActivity
Sebuah intent dapat mengirimkan data_ ke Activity target melalui dua cara dari dalam data field atau dalam inten extras. Sebuah data intent merupakan URL yang mengindikasikan data tertentu. Jika data yang akan dikirimkan bukan merupakan sebuah URL dan atau data yang dikirimkan lebih dari satu maka lebih baik menggunakan intent extras. Intent extras merupakan key/value dalam sebuah Bundle yang mengindikasikan koleksi data, disimpan sebagai key/value untuk mengirimkan informasi antar activity atau untuk mendapatkannya kembal.
- Buka class MainActivity.java
- Tambahkan konstanta pada bagian atas clss untuk mendeskripsikan intent extra
public static final String EXTRA_MESSAGE = "com.example.myapplication6.MainActivity.extra.MESSAGE";
- Tambahkan variabel untuk mendeskripsikan EditText, Button dan variable untuk menampung
Button btn_Send; EditText edPesan; String message;
- Tambahkan kode berikut dalam method onCreate() untuk mengambil view EditText dan button
btn_Send = (Button) findViewById(R.id.btnSend); edPesan = (EditText) findViewById(R.id.editText);
- Pada method btnSend(), dibawah new intent tambahkan kode berikut untuk mengambil nilai String dari EditText
String message = edPesan.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message);
- Kode lengkap activity_main.xml sebagai berikut
<?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=".MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:id="@+id/btnSend" android:onClick="btnSend" android:text="SEND" /> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/btnSend" android:layout_alignParentBottom="true"/> </RelativeLayout>
- Kode lengkap activity_second.xml sebagai berikut
<?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=".SecondActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt1" android:text="Pesan diterima" android:textSize="14sp" android:textStyle="bold" android:paddingLeft="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/txt2" android:text="Ini adalah pesan yang diterima" android:textSize="12sp" android:paddingLeft="20dp" android:layout_below="@id/txt1"/> </RelativeLayout>
- Kode lengkap MainActivity.java sebagai berikut
package com.example.myapplication6; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button btn_Send; EditText edPesan; String message; public static final String EXTRA_MESSAGE = "com.example.myapplication6.MainActivity.extra.MESSAGE"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_Send = (Button) findViewById(R.id.btnSend); edPesan = (EditText) findViewById(R.id.editText); } public void btnSend(View view){ Intent intent =new Intent (this, SecondActivity.class); message =edPesan.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); startActivity(intent); } }
- Kode lengkapnya SecondActivity.java sebagai berikut
package com.example.myapplication6; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class SecondActivity extends AppCompatActivity { TextView tamText; private String nama; public static final String EXTRA_MESSAGE = "com.example.myapplication6.MainActivity.extra.MESSAGE"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); tamText = (TextView) findViewById(R.id.txt1); Bundle extras = getIntent().getExtras(); nama = extras.getString(EXTRA_MESSAGE); tamText.setText("Hello, " + nama + " !"); } }
- Jalankan Aplikasi
D Mengganti Icon Launcher Aplikasi
Merupakan logo/icon utama, merepresentasikan suatu aplikasi Android yang terdapat pada mobile device.
- Siapkan terlebih dahulu sebuah Project Aplikasi Android, atau dapat menggunakan Project yang sudah dibuat sebelumnya.
- Siapkan sebuah file icon.png yang dapat diunduh melalui Internet
- Buka Project, Klik kanan pada app ➜ New ➜ Image Asset
- Masuk ke menu Configure Image Asset kemudian tekan tombol asset dan cari lokasi dimana gambar disimpan sbb :
- Pilih gambar yang akan dijadikan logo dalam icon launcer, kemudian tekan tombol Next dan Finish
- Jalankan program.