Berpindah Screen Dengan Activity Pada Aplikasi Android

Pada tampilan user interface di Android screen ditampilkan melalui Activity. Dalam pengembangan aplikasi Android kita mungkin akan menghadapi situasi di mana kita perlu untuk berpindah antara satu Activity (Screen) ke Activity yang lain. Dalam tutorial Programming Android kali ini kita akan mencoba membahas tentang bagaimana berpindah antar Activity dan mengirim data antara Activity.
Sebelum masuk ke tutorial lengkapnya, kita mencoba sedikit memberikan potongan kode untuk menangani activity yang nanti akan kita gunakan. Misalnya saja nama class Activity baru kita adalah ScreenSatuActivity.java
Membuka activity baru
Untuk membuka activity baru gunakan method stratActivity() atau stratActivityForResult(), contohnya :

Intent i = new Intent(getApplicationContext(), ScreenDuaActivity.class);
StartActivity(i);

Mengirim parameter ke Activity baru
Untuk mengirim parameter ke activity baru gunakan method putExtra(), contoh:

i.putExtra("key", "value");
 
// Contoh mengirim email ke screen dua
// Key = 'email'
// value = 'my_email@email.com'
i.putExtra("email", "my_email@email.com");

Menerima parameter di activity baru
Untuk menerima parameter gunakan method getStringExtra(), contoh:

Intent i = getIntent();
i.getStringExtra("key");
 
// Contoh menerima parameter key value sebagai 'email'
String myemail = i.getStringExtra("email");

Membuka activity baru dan hasilnya
Gunakan method startActivityForResult() dan gunakan onActivityResult() untuk membaca hasil datanya.

Intent i = new Intent(getApplicationContext(), ScreenDuaActivity.class);
startActivityForResult(i, 100); 
 
// Fungsi untuk membaca hasil dari activity baru
@Override
    protected void onActivityResult(int requestCode,
                                     int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == 100){
 
             String myemail = data.getExtras().get("result");
        }
 
    }

Menutup activity
Untuk menutup activity panggil method finish();
Tambahkan activity pada AndroidManifest.xml
Untuk menjalankan aplikasi, tambahkan class activity yang baru dibuat ke AndroidManifest.xml. tambahkan diantara tag

<activity android:name=".NamaClassActivityBaru"></activity>

Sekarang kita mulai mempraktekan potongan code diatas kedalam latihan project sederhana.
Buat project android seperti berikut:
Application Name                 : AndroidSwitchViews
Project Name                        : AndroidSwitchViews
Package Name                      : firman.salatigadev.switchviews
Minimum Required SDK    : Andoid 2.2
Target SDK                           : Android 4.2
Yang lain biarkan default.
Buat file screen_satu.xml di res/layout kemudian isi file screen_satu.xml menjadi seperti berikut:

res/layout/screen_satu.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Nama : "/>
    <EditText android:id="@+id/nama"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"/>
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Email : "
        />
    <EditText android:id="@+id/email"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"/>
    <Button android:id="@+id/btnNextScreen"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Kirim ke Screen Kedua"
            android:layout_marginTop="15dip"/>
</LinearLayout>

Buka class ScreenSatuActivity.java dan isi code berikut. Didalam code ini kita membuat Intent baru dan melakukan passing parameter pada tombol.

src/firman.salatigadev.switchviews/ScreenSatuActivity.java
package firman.salatigadev.switchviews;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class ScreenSatuActivity extends Activity {
	// variabel
    EditText inputNama;
    EditText inputEmail;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.screen_satu);
		
		inputNama = (EditText) findViewById(R.id.nama);
        inputEmail = (EditText) findViewById(R.id.email);
        Button btnNextScreen = (Button) findViewById(R.id.btnNextScreen);
 
        //Menangkap tombol event
        btnNextScreen.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View arg0) {
                //Memulai Intent Baru
                Intent nextScreen = new Intent(getApplicationContext(), ScreenDuaActivity.class);
 
                //Sending data to another Activity
                nextScreen.putExtra("nama", inputNama.getText().toString());
                nextScreen.putExtra("email", inputEmail.getText().toString());
 
                Log.e("n", inputNama.getText()+"."+ inputEmail.getText());
 
                startActivity(nextScreen); 
            }
        });
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.screen_satu, menu);
		return true;
	}
}

Buat file layout baru screen_dua.xml di res/layout dan isi dengan code seperti berikut:

res/layout/screen_dua.xml
<?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">
 
  <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Screen Dua..."
            android:textSize="25dip"
            android:gravity="center"
            android:layout_margin="15dip"/>
 
  <TextView android:id="@+id/txtNama"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="15dip"
            android:textSize="18dip"/>
 
  <TextView android:id="@+id/txtEmail"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="15dip"
            android:textSize="18dip"/>
 
  <Button android:id="@+id/btnClose"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dip"
            android:text="Tutup"/>
 
</LinearLayout>

Buat class baru ScreenDuaActivity.java di direktori src/nama.package isikan code berikut, disini kita memasukan code sederhana untuk membaca parameter dan menampilkannya pada screen aplikasi.

src/firman.salatigadev.switchviews/ScreenDuaActivity.java
package firman.salatigadev.switchviews;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class ScreenDuaActivity extends Activity {
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.screen_dua);
 
        TextView txtNama = (TextView) findViewById(R.id.txtNama);
        TextView txtEmail = (TextView) findViewById(R.id.txtEmail);
        Button btnClose = (Button) findViewById(R.id.btnClose);
 
        Intent i = getIntent();
        // Menerima the Data
        String nama = i.getStringExtra("nama");
        String email = i.getStringExtra("email");
        Log.e("Screen Kedua", nama + "." + email);
 
        // Menampilkan data yang diterima
        txtNama.setText(nama);
        txtEmail.setText(email);
 
        // Klik event pada tombol
        btnClose.setOnClickListener(new View.OnClickListener() {
 
            public void onClick(View arg0) {
                //Menutup ScreenDua Activity
                finish();
            }
        });
 
    }
}

Terakhir tambahkan class yang baru kita buat ScreenDuaActivity.java yang baru saja kita buat kedalam file AndroidManifest.xml.

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="firman.salatigadev.switchviews"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="firman.salatigadev.switchviews.ScreenSatuActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <!-- Menambahkan class activity baru -->
        <activity android:name=".ScreenDuaActivity"></activity>
        
    </application>

</manifest>

Running aplikasi yang baru saja kita buat.
             

You may also like...

3 Responses

  1. joshap says:

    Mas mau tanya kalau misalnya tadi ada activity satu dan dua, activity satu didalamnya ada perintah-perintah salah satunya back (kembali kehalaman depan dashboard), setelah itu bisa pilih activity dua, didalam activity dua juga ada perintah-perintah dan begitu sebaliknya, gimana implementasi kodingnya iya? mohon bantuannya #newbie terima kasih

    • admin says:

      Terimakasih juga sudah mau mampir..
      Perintah2nya bisa ditambahkan pada masing2 class activitynya mas joshap,
      misalkan pada ScreenDuaActivity.java itu kan sudah ada perintah setOnClickListener yang diset untuk menutup Screendua, nah mas joshap bisa tambahkan misalnya button untuk menuju halaman lain, begitu juga sebaliknya, tinggal tambahkan perintah2 yang ingin digunakan.

  1. June 24, 2015

    […] maka kita akan membutuhkan 6 activity untuk setiap icon menu. Anda bisa membaca kembali artikel Berpindah Screen Dengan Activity Pada Aplikasi Android untuk lebih menjelaskan bagaimana cara aplikasi beralih atau berpindah antar activity. Buka […]

Leave a Reply

Your email address will not be published. Required fields are marked *