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 |