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
<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
Maaf mas bro saya gak copas, nih ada pdfnya :)
BalasHapusgan, dibagian ini ada warningnya
BalasHapusBundle newActivityInfo = new Bundle();
katanya unused, ane udh coba smua yg disaranin warningnya program tetep ga jalan. need help gan :D