반응형
Notice
Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

Do Something IT

[안드로이드] Activity 인텐트시 클래스 값 넘기기 본문

Android

[안드로이드] Activity 인텐트시 클래스 값 넘기기

아낙시만더 2010. 12. 20. 11:41
반응형


public class ParcleablaClass implements Parcelable {
 /*인텐트시 Music과 ArrayList값을 넘긴다.*/
 static private Music mMusic = null;
 static private ArrayList<Music> mMusiclist = null;
 static ParcleablaClass pc = null;

 public ParcleablaClass(Music pMusic) {
  mMusic = pMusic;
  pc = this;
 }
 public ParcleablaClass(ArrayList<Music> pMusiclist ) {
  mMusiclist = pMusiclist;
  pc = this;
 }

 public int describeContents() {
  return 0;
 }

 public void writeToParcel(Parcel dest, int flags) {
 }

 public Music getMusic() {
  return mMusic;
 }
 public ArrayList<Music> getMusicList() {
  return mMusiclist;
 }
 
 public static final Parcelable.Creator<ParcleablaClass> CREATOR = new Parcelable.Creator<ParcleablaClass>() {

  public ParcleablaClass createFromParcel(Parcel source) {
   return pc;
  }

  public ParcleablaClass[] newArray(int size) {
   return new ParcleablaClass[size];
  }
 };
}

Parcelable클래스를 선언한다. 여기서 생성자를 통해 넘길 클래스를 값을 저장한다.
==[값을줄 Activity]==

intent.setClass(Top100ListActivity.this,
     MusicPlayerActivity.class);
   Music music = new Music(Top100Adapter.getList().get(position)
     .getLid(),Top100Adapter.getList().get(position)
     .getSingerName(), Top100Adapter.getList().get(position)
     .getSongName(), Top100Adapter.getList().get(position)
     .getPreListenUrl1(),Top100Adapter.getList().get(position)
     .getPreListenUrl2(),Top100Adapter.getList().get(position)
     .getPreListenUrl3(), Top100Adapter.getList().get(position)
     .getRanKing(), Top100Adapter.getList().get(position)
     .getAlbumImage());
   ParcleablaClass pc = new ParcleablaClass(music);
   intent.putExtra("MUSIC", pc);
   intent.putExtra("CHECK", select_check);
   startActivity(intent);

이선식으로 해당값을 저장한후 Parcelable클래스 객체를 생성할때 해당 클래스 객체를 넘겨준다. 그렇게 하면 pc는 해당 클래스 객체값을 가지고 다음 액티비티로 넘어가게 된다.
==[값을 받을 Activity]==
private Bundle bnudle;
 private ParcleablaClass pc;

bnudle = getIntent().getExtras();
  pc = bnudle.getParcelable("MUSIC");
music = pc.getMusic();

처럼 하여 값을 넘겨 받을수있다.

반응형
Comments