본문 바로가기

노트필기

[Do it 안드로이드] Parcelable 예제

Parcelable 예제




* Day15-4 강의 내용인데 이해 못함..... ㅠ.ㅠ


<Main>


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

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

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), MenuActivity.class);

ArrayList<String> names = new ArrayList<String>();
names.add("김진수");
names.add("황수경");

i.putExtra("names", names);

startActivityForResult(i, 101);
}
});
} }


<Menu>



import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

import java.util.ArrayList;

public class MenuActivity extends AppCompatActivity {

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

findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});

Intent passedIntent = getIntent();
processIntent(passedIntent);

}

private void processIntent(Intent passedIntent) {
if (passedIntent != null) {
ArrayList<String> names = (ArrayList<String>) passedIntent.getSerializableExtra("names");
if (names != null) {
Toast.makeText(getApplicationContext(), "넘겨받은 이름 갯수 : "

+ names.size(), Toast.LENGTH_SHORT).show();
}
}
}

}


<SimpleData.Class>

package com.oneplus.gubong_kim.parcelable;

import android.os.Parcel;
import android.os.Parcelable;

public class SimpleData implements Parcelable {

int num;
String msg;

public SimpleData(int num, String msg) {
this.num = num;
this.msg = msg;
}

public SimpleData(Parcel src) {
num = src.readInt();
msg = src.readString();
}

public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public SimpleData createFromParcle(Parcel src) {
return new SimpleData(src);
}

@Override
public Object createFromParcel(Parcel parcel) {
return null;
}

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

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeInt(num);
parcel.writeString(msg);

}
}

'노트필기' 카테고리의 다른 글

[Android] 2017.06.20(오전)  (0) 2017.06.20
[Do it 안드로이드] Day 16 - 4  (0) 2017.06.18
[Android] 5th Class  (0) 2017.06.13
[Android] 4th Class  (0) 2017.06.12
[Android] 3rd Class  (0) 2017.06.09