您的位置:首页 > 其它

在 Activity 之间传递参数————传递值对象

2015-08-29 14:21 330 查看
传递值对象:第一个中方式 :传递的Uuser类,user需要

public class User implements Serializable

FirstMainActivity:

package com.example.parameter;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

public class FirstMainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_first_main);

Button button1=(Button) findViewById(R.id.button1);

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

Intent intent=new Intent(FirstMainActivity.this,SecondMainActivity.class);

//user实现Serializable

intent.putExtra("user", new User("极客学院",20));

startActivity(intent);

}

});

}

SecondMainActivity :

package com.example.parameter;

import android.R.integer;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.widget.TextView;

public class SecondMainActivity extends Activity {

private TextView textView1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second_main);

Intent intent=getIntent();

textView1=(TextView) findViewById(R.id.textView1);

User user=(User) intent.getSerializableExtra("user");

textView1.setText(String.format("name=%s,age=%d",user.getName(),user.getAge()));

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.second_main, menu);

return true;

}

}

第二种方式:public class User implements Parcelable

package com.example.parameter;

import java.io.Serializable;

import android.os.Parcel;

import android.os.Parcelable;

public class User implements Parcelable{

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public User(String name, int age) {

super();

this.name = name;

this.age = age;

}

public User() {

super();

}

@Override

public int describeContents() {

return 0;

}

@Override

public void writeToParcel(Parcel dest, int flags) {

//Parcelable没用全自动的序列化机制

dest.writeString(getName());

dest.writeInt(getAge());

}

public static final Creator<User>CREATOR=new Creator<User>() {

@Override

public User[] newArray(int size) {

return new User[size];

}

@Override

public User createFromParcel(Parcel source) {

return new User(source.readString(),source.readInt());

}

};

}

SecondMainActivity:

package com.example.parameter;

import android.R.integer;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.widget.TextView;

public class SecondMainActivity extends Activity {

private TextView textView1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_second_main);

Intent intent=getIntent();

textView1=(TextView) findViewById(R.id.textView1);

User user=(User) intent.getParcelableExtra("user");

textView1.setText(String.format("name=%s,age=%d",user.getName(),user.getAge()));

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.second_main, menu);

return true;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: