Minggu, 16 Desember 2012

[android] Panggil Activity Lain

Hari ini mau tulis cara memanggil activity lain di android. Kadang kita berfikir gimana cara memanggil window atau interface lain (activity) pada saat mengklik atau apa lah. Dalam memanggil activity lain di android kita menggunakan class Intent
Langsung aja kita ke code ya; 

Layout ke-1  --> login.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/titleWind_1"
        android:paddingBottom="35dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/lblName" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/lblPassword"
        android:inputType="textPassword">
    </EditText>
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
   android:orientation="vertical" >
   <Button
        android:id="@+id/buttonLogin"
        android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentRight="true"
       android:text="@string/but_submit" 
       android:onClick="authLogin" />  

</RelativeLayout>
</LinearLayout>

Class ke-1 yang memanggil layout login.xml : AppAndrAcitvity.java

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class AppAndrActivity extends Activity {
int ret;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.login);
       }
 
       public void authLogin(View clickButton) {
          Intent activityIntent = new Intent(this, MainWindow.class);
          Bundle newActivityInfo = new Bundle();
          startActivity(activityIntent);
       }
}
---------------------------------------------------------------------------------------------------------
Layout ke-2 yakni : main.xml

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textViewLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/titleWind_2"
        android:paddingBottom="35dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/lblKey" />
 
     <Button
        android:id="@+id/buttonLogin"
        android:layout_width="wrap_content"
       android:layout_height="wrap_content"
        android:layout_gravity="right"
       android:text="@string/but_search" 
        />    
</LinearLayout>

Class ke-2 yang memanggil layout main.xml : MainWindow.java

import android.app.Activity;
import android.os.Bundle;

public class MainWindow extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
 }
---------------------------------------------------------------------------------------------------------
Selanjutnya tambahkan activity MainWindow pada file AndroidManifest.xml.

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="id.view"         <!-- class untuk menyimpan interface ada di package id.view -->
    android:versionCode="1"
    android:versionName="1.0"
    >
<!--  android:installLocation="preferExternal" -->
    <uses-sdk android:minSdkVersion="10"
  android:targetSdkVersion="15" />
 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:debuggable="true" >
        <activity
            android:name=".AppAndrActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
     
         <activity
            android:name=".MainWindow"
            android:label="@string/main_window" >             <!-- Activity yang ditambahkan --->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
         </activity>
       
    </application>

</manifest>


Perlu diingat class AppAndrActivity tidak ditambahkan di manifest, itu karena sebelumnya sudah ada pada manifestnya. Jadi hanya class MainWindow saja yang ditambahkan.
Sudah deh, run project nanti akan terlihat menu login setelah ditekan tombol submit maka akan muncul window berikutnya. Oh iya saya tidak menyertakan file string.xml ya, jadi untuk value yang isinya "@string/xxxx" maka kalian sendiri yang membuat di file string.xml.
Sekian dari saya, kalo kurang jelas bisa ditanyakan ke mbah google, ato kirim komen jika program yg saya tulis diatas error pada saat anda coba untuk jalankan. :)

Wasssalam



3 komentar:

  1. copas dari blog orang lain ya ;p
    #cantumin sumbernya juga..

    BalasHapus
  2. Maaf mas bro saya gak copas, nih ada pdfnya :)

    BalasHapus
  3. gan, dibagian ini ada warningnya
    Bundle newActivityInfo = new Bundle();

    katanya unused, ane udh coba smua yg disaranin warningnya program tetep ga jalan. need help gan :D

    BalasHapus