一.传递简单数
MainActivity:
<pre name="code" class="java">findViewById(R.id.mybutton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,newact.class);
i.putExtra("data","Hello xsc");
startActivity(i);
}
});
AnotherActivity:
tv= (TextView) findViewById(R.id.tv); findViewById(R.id.mybutton2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final Intent i = getIntent(); tv.setText(i.getStringExtra("data")); } });
二.传递数据 包Bundle
MainActivity:
findViewById(R.id.mybutton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,newact.class); Bundle b = new Bundle(); b.putString("name","xiashenchao"); b.putInt("age",20); //b.putString("name1","misbone"); i.putExtras(b); //i.putExtra("data",b);//另一种方法B startActivity(i); } });
AnotherActivity:
findViewById(R.id.mybutton2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = getIntent(); Bundle data=i.getExtras(); //Bundle data=i.getBundleExtra("data");<span style="font-family: 宋体; font-size: 9pt;">//另一种方法B</span> tv.setText(String.format("name=%s,age=%d,name1=%s",data.getString("name"),data.getInt("age"),data.getString("name1", "xsc"))); } });
三.传递值对象
User:
package com.example.administrator.myapplication85; import android.os.Parcel; import android.os.Parcelable; import java.io.Serializable; /** * Created by Administrator on 2015/8/5. */ //public class User implements Serializable{//Java内置,较方便 public class User implements Parcelable{ private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public User(String name,int age){ this.name=name; this.age=age; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(getName()); dest.writeInt(getAge()); } public static final Creator<User> CREATOR=new Creator<User>() { @Override public User createFromParcel(Parcel source) { return new User(source.readString(),source.readInt()); } @Override public User[] newArray(int size) { return new User[size]; } }; }
MainActivity:
findViewById(R.id.mybutton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,newact.class); i.putExtra("user",new User("misbone",20)); startActivity(i); } });
AnotherActivity:findViewById(R.id.mybutton2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = getIntent(); //User user= (User) i.getSerializableExtra("user"); User user=i.getParcelableExtra("user"); tv.setText(String.format("User info(name=%s,age=%d)",user.getName(),user.getAge())); } });
四.获取 Activity 的返回参数
MainActivity:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_layout); textView= (TextView) findViewById(R.id.textView); findViewById(R.id.mybutton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(MainActivity.this,newact.class); startActivityForResult(i,0); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); textView.setText("another act'data is "+data.getStringExtra("data")); }
AnotherActivity:
findViewById(R.id.mybutton3).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(); i.putExtra("data",editText.getText().toString()); setResult(1, i); finish(); } });