Jumat, 07 Desember 2012

[Android] Back To Parent Activity

Sorry, if the title is english, but the content indonesian :). Oke hari ini mau tulis tentang balik ke parent activity kalo seandainya programnya sudah ada di second activity. Ini bisa digunakan jika kalian membuat aplikasi di android yang memiliki banyak activity ato screen. 

Nah caranya simple cukup kita panggil fungsi finish saja pada second activity. Oke untuk lebih jelas kita buat contoh :)

:: Parent Activity ::

** login.xml -> parent activity layout **

<?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" >
    
   <Button  android:id="@+id/button_1"
        android:layout_width="wrap_content"
android:layout_height="wrap_content"
        android:text="@string/button_next"
        android:layout_gravity="right"
        android:onClick="nextStep"
        />
   
   <EditText android:id="@+id/ed_no"
       android:hint="@string/lbl_QuestionerNum"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:ems="10"
       android:inputType="number"
       />
   
   <EditText android:id="@+id/ed_id"
       android:hint="@string/lbl_InterviewerId"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:ems="10"
       />
   
   <EditText android:id="@+id/ed_nama"
       android:hint="@string/lbl_InterviewerName"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:ems="10"
       />
   
   <TextView android:id="@+id/ed_cal"
       android:text="@string/lbl_Date"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:ems="10"
       android:clickable="true"
       android:onClick="setDate"
       android:textSize="20sp"
       android:paddingLeft="10sp"
       />
   
   <EditText android:id="@+id/ed_address"
       android:hint="@string/lbl_Address"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:ems="10"
       />
   
    <EditText android:id="@+id/ed_NoHp"
       android:hint="@string/lbl_NoHP"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:ems="10"
       android:inputType="number"
       />
    
</LinearLayout>

MainAcitivity.java


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

public class MainActivity extends Activity {

static final int PICK_DATE_REQUEST = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
}

public void nextStep(View prm) {
EditText ed = (EditText) findViewById(R.id.ed_nama);
String name = ed.getText().toString();
Intent intent = new Intent(this, Intro.class);
Bundle newActivityInfo = new Bundle();
           newActivityInfo.putString("name", name);
           intent.putExtras(newActivityInfo);
startActivity(intent);
}

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

}

:: Second Activity ::

intro.xml --> second activity layout

<?xml version="1.0" encoding="UTF-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1">
    <TableRow >       
        <Button
             android:id="@+id/button_1"
             android:onClick="previousStep"
             android:text="@string/button_previous" />
         <Button
             android:id="@+id/button_2"
             android:onClick="nextStep"
             android:text="@string/button_next"
             android:layout_column="2" />
    </TableRow>
    <TableRow>
  <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_span="3">
       <TextView
        android:id="@+id/textIntro"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       android:text="@string/lbl_IntroText"        
       />
   </TableLayout>
    </TableRow>
</TableLayout>

Intro.java 

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

public class Intro extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Bundle info = intent.getExtras();
String str = info.getString("name");
String str0 = "Selamat Pagi / Siang / Sore, Saya ";
str0 += str+" ";
setContentView(R.layout.intro);

TextView text = (TextView) findViewById(R.id.textIntro);
str0 += text.getText().toString();
text.setText(str0);
}
public void previousStep(View prm) {
this.finish();
}
}

Perhatikan pada fungsi previousStep yang memanggil fungsi finish(), hal itu dilakukan untuk menyelesaikan current acitivity atau second activity.

Oh iya sebagai catatan, saya tidak memasukan semua fungsi yang dideklerasikan dalam android:onClick ya.

Sekian dulu, wassalam :)


0 komentar:

Posting Komentar