Selasa, 01 Januari 2013

[Android] Passing Data dan Object POJO Menggunakan Intent

Di tanggal 1 Januari 2013, gw pengen membuka lembaran posting blog dengan passing data menggunakan intent. Sebelumnya gw pernah posting tentang intent yang memanggil activity lain. Kali ini selain memanggil activity lain, kita jg mempassing data ke activity yang lain tersebut.
Oh iya gw pake kode yang ada di postingan yang sebelumnya ya. Pada postingan sebelumnya untuk class-1. Pada kode dibawah kita passing data menggunakan key dan memanggil fungsi putExtras().

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 {
        public static final String keyA = "keyA";         // intent menggunakan key untuk passing data
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();
     newActivityInfo.putString(keyA, "This is My Value");   //passing value menggunakan key
              activityIntent.putExtras(newActivityInfo);         // save object bundle
              startActivity(activityIntent);
       }
}

Kemudian pada class yang akan dipanggil, yakni MainWindow. Kita bisa ambil value yg kita passing sebelumnya menggunakan getExtras()
import android.app.Activity;
import android.os.Bundle;

public class MainWindow extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
                Intent intent = getIntent();
Bundle info = intent.getExtras();
                String str = info.getString(AppAndrActivity.keyA);
                System.out.println("STR "+str);
setContentView(R.layout.main);
}
 }


Oh iya, dalam hal ini saya tidak merubah tampilan layout yang ada pada file xml ya. Kalau dijalankan, maka pada logcat akan muncul STR This is My Value.
Dengan object bundle, kita bisa passing string, int, dll. Kita juga bisa mempasing object POJO atau object yang kita bikin sendiri. misalnya 

import java.io.Serializable;

public class Person implements Serializable {
      private static final long serialVersionUID = 1L;
      String id;
      String name;

      public void setId (String id) {
            this.id = id;
      }

      public void setName (String name) {
             this.name = name;
      }

      public String getId() {
             return id;
      }

      public String getName() {
             return name;
      }
}

Syarat mempasing object yakni dengan implement object Serializable, setelah itu kita bisa menggunakan putSerializable() untuk mempasing object tersebut. Cara mempasingnya pun sama yakni dengan menggunakan key dan valuenya sudah tentu object pojonya (dalam hal ini object Person).
Sekian postingan dari saya, kalo masih kurang mengerti tanya google aja ya :)

0 komentar:

Posting Komentar