1.点击一个按钮跳转到百度页面(或者另一个activity):
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnStartAnotherAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//startActivity(new Intent(MainActivity.this,AnotherAty.class));
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.baidu.com/")));
}
});
}
2.传递简单数据(点击按钮在另一个actity显示传入的数据):
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.startAnthorAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i= new Intent(MainActivity.this,AnotherAty.class);
i.putExtra("data", "fc");
startActivity(i);
}
});
}
public class AnotherAty extends ActionBarActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another_aty);
Intent i= getIntent();
tv = (TextView)findViewById(R.id.tv);
tv.setText(i.getStringExtra("data"));
}
3.传递Bundle数据包:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i= new Intent(MainActivity.this,AnotherAty.class);
// i.putExtra("data", "fc");
Bundle b = new Bundle();
b.putString("name", "fc");
b.putInt("age", 21);
// b.putString("default", "默认值"); //如果传入有默认值此行可省
i.putExtra("data",b);
startActivity(i);
}
});
}
public class AnotherAty extends ActionBarActivity {
private TextView tv;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another_aty);
Intent i= getIntent();
Bundle data = i.getBundleExtra("data");
tv = (TextView)findViewById(R.id.tv);
tv.setText(String.format("name=%s,age=%d,default=%s", data.getString("name"),
data.getInt("age"),data.getString("default","default")));//第三个参数含默认值
// tv.setText(i.getStringExtra("data"));
}
4.传递类类型的数据
4.1Serializable方式:
import java.io.Serializable;
import android.R.string;
public class User implements Serializable {
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;
}
private String name;
private int age;
public User(String name,int age){
this.name = name;
this.age = age;
}
}
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i= new Intent(MainActivity.this,AnotherAty.class);
i.putExtra("user", new User("fc",21));
startActivity(i);
}
});
}
public class AnotherAty extends ActionBarActivity {
private TextView tv;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another_aty);
Intent i= getIntent();
tv = (TextView)findViewById(R.id.tv);
User user = (User) i.getSerializableExtra("user");
tv.setText(String.format("User Info(name=%s,age=%d)",user.getName(),user.getAge() ));
}
4.2 Parcelable方式:
import android.os.Parcel;
import android.os.Parcelable;
public class User implements Parcelable {
public User(String name, int age) {
this.name= name;
this.age = 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;
}
private String name;
private int age;
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeString(getName());
dest.writeInt(getAge());
}
public static final Creator<User> CREAT = new Creator<User>(){
@Override
public User createFromParcel(Parcel source) {
// TODO Auto-generated method stub
return new User(source.readString(),source.readInt());
}
@Override
public User[] newArray(int size) {
// TODO Auto-generated method stub
return new User[size];
}
};
}
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent (MainActivity.this,AnotherAty.class);
i.putExtra("user", new User("fc",21));
startActivity(i);
}
});
}
public class AnotherAty extends ActionBarActivity {
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_another_aty);
Intent i= getIntent();
tv= (TextView) findViewById(R.id.tv);
User user= i.getParcelableExtra("user");
tv.setText(String.format("User Info(name=%s,age=%d)",user.getName(),user.getAge() ));
}