在 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;
}
}
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;
}
}
相关文章推荐
- 类和对象
- Android调用微信登陆、分享、支付
- Android调用微信登陆、分享、支付
- C#的类型、变量和值
- 类加载器
- Codeforces Round #251 (Div. 2) 439D Devu and his Brother(脑洞)
- WebService注解汇总
- 使用shell操作数据库
- 全局大喇叭 广播机制 Receiver
- Linux命令之文本搜索工具grep、egrep、fgrep
- 腾讯坐标转换百度坐标
- boost编译命令
- material design 的android开源代码整理
- 基于CDH5.4的Spark1.4.1下SparkR的部署
- redhat5.5 x64 安装oracle 11g
- 安装完Git后的相关操作总结
- unity3d游戏开发教程
- Hibernate配置文件详解
- 工作中Linux的使用总结
- sizeof(struct)说明